Java SDK Calling Example
This section uses the API for querying the instance list (ListInstances) as an example to describe how to use the Huawei Cloud Java SDK.
Prerequisites
- You have obtained the access key (AK) and secret access key (SK) corresponding to your Huawei Cloud account. For details, see Creating Access Keys.
- The JDK 1.8 or a later version has been installed in the environment where the SDK runs, and the Maven has also been installed and configured.
Installing the SDK
You are advised to install the Huawei Cloud Java SDK using Maven. The following uses Maven as an example.
Open the pom.xml file of the Maven project and add the following dependency configuration under the <dependencies> node. Maven will automatically download the required SDK package.
The Java SDK 3.1.219 is used as an example. For details about the latest SDK version, visit SDK Center.
- Installing the SDK package of a single cloud service
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-kafka</artifactId> <version>3.1.219</version> </dependency> - Installing the SDK package of a cloud service collection
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-all</artifactId> <version>3.1.219</version> </dependency> - Installing the SDK bundle package of a cloud service collection
If a third-party library conflict occurs, you can import the following bundle package (3.0.40-rc or later). It contains all supported services and has redirected the third-party software that the SDK depends on, preventing conflicts with the libraries that the service itself depends on.
<dependency> <groupId>com.huaweicloud.sdk</groupId> <artifactId>huaweicloud-sdk-bundle</artifactId> <version>3.1.219</version> </dependency>
The bundle package already contains the core package and cloud service collection package of the SDK. Therefore, you do not need to import the core package and service package separately. According to the Maven dependency parsing sequence, importing the core package and service package may cause the bundle package to fail to take effect.
Using the SDK
The following is a complete Java example, which shows how to use the Huawei Cloud Java SDK to call the ListInstances API.
- To obtain the SDK example code for other APIs, see Obtaining SDK Sample Code.
- This example provides only the basic API parameter settings. For more advanced settings, see the user manual of the SDK.
- There will be huge security risks if the AK and SK used for authentication are directly written into the code. You are advised to encrypt the AK and SK and store them in the configuration file or set environment variables, and decrypt them when using them. In this example, the AK and SK are stored as the environment variables CLOUD_SDK_AK and CLOUD_SDK_SK. For details, see Environment Variables.
package com.huaweicloud.sdk.test; import com.huaweicloud.sdk.core.auth.ICredential; import com.huaweicloud.sdk.core.auth.BasicCredentials; import com.huaweicloud.sdk.core.exception.ConnectionException; import com.huaweicloud.sdk.core.exception.RequestTimeoutException; import com.huaweicloud.sdk.core.exception.ServiceResponseException; import com.huaweicloud.sdk.kafka.v2.region.KafkaRegion; import com.huaweicloud.sdk.kafka.v2.*; import com.huaweicloud.sdk.kafka.v2.model.*; public class ListInstancesSolution { public static void main(String[] args) { // ==================== Initialize the client. ==================== // Obtain the AK/SK from the environment variables. Before running, you need to set the AK/SK as environment variables. String ak = System.getenv("CLOUD_SDK_AK"); String sk = System.getenv("CLOUD_SDK_SK"); String projectId = "195e********4a708ad9f9********1d"; // Configure an authentication credential. ICredential auth = new BasicCredentials() .withProjectId(projectId) .withAk(ak) .withSk(sk); // Initialize the client. KafkaClient client = KafkaClient.newBuilder() .withCredential(auth) .withRegion(KafkaRegion.valueOf("ap-southeast-1")) .build(); // ==================== Construct a request object. ==================== // Use the request object provided by the SDK to encapsulate request parameters. ListInstancesRequest request = new ListInstancesRequest(); request.withEngine(ListInstancesRequest.EngineEnum.fromValue("kafka")); // ==================== Initiate a request and handle the response. ==================== // Use the client to call the corresponding API. If the API is successfully called, a response object is returned. If the API fails to be called, an exception is thrown. try { ListInstancesResponse response = client.listInstances(request); System.out.println(response.toString()); } catch (ConnectionException e) { e.printStackTrace(); } catch (RequestTimeoutException e) { e.printStackTrace(); } catch (ServiceResponseException e) { e.printStackTrace(); System.out.println(e.getHttpStatusCode()); System.out.println(e.getRequestId()); System.out.println(e.getErrorCode()); System.out.println(e.getErrorMsg()); } } }
What is your overall rating for this page?
Thank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot