首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >com.amazonaws.transform.EnhancedJsonErrorUnmarshaller :java.lang.ClassNotFoundException

com.amazonaws.transform.EnhancedJsonErrorUnmarshaller :java.lang.ClassNotFoundException
EN

Stack Overflow用户
提问于 2021-03-03 15:21:06
回答 1查看 1.3K关注 0票数 1

当尝试连接到秘密管理器时,我的代码抛出了这个异常。我正在尝试创建Secrets Manager客户端。

代码语言:javascript
运行
复制
AWSSecretsManager client = 
    AWSSecretsManagerClientBuilder.standard()
        .withRegion(region)
        .build();

Pom.xml中添加了以下依赖项。

代码语言:javascript
运行
复制
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-secretsmanager</artifactId>
    <version>1.11.965</version>
</dependency>
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.11.965</version>
</dependency>
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-core</artifactId>
    <version>1.11.965</version>
</dependency>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-03 20:32:00

亚马逊建议迁移到AWS SDK for Java V2。您可以在Github here中找到秘密管理器V2代码。

包含依赖项的POM文件位于SecretManager文件夹中的Github中。

V2代码已经过多次测试,下面的代码可以工作:

代码语言:javascript
运行
复制
package com.example.secrets;

//snippet-start:[secretsmanager.java2.create_secret.import]
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.secretsmanager.SecretsManagerClient;
import software.amazon.awssdk.services.secretsmanager.model.CreateSecretRequest;
import software.amazon.awssdk.services.secretsmanager.model.CreateSecretResponse;
import software.amazon.awssdk.services.secretsmanager.model.SecretsManagerException;
//snippet-end:[secretsmanager.java2.create_secret.import]

/**
 * To run this AWS code example, ensure that you have setup your development environment, including your AWS credentials.
 *
 * For information, see this documentation topic:
 *
 *https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */


public class CreateSecret {

    public static void main(String[] args) {

       final String USAGE = "\n" +
                "Usage:\n" +
                "    CreateSecret  <secretName> <secretValue> \n\n" +
                "Where:\n" +
                "    secretName - the name of the secret (for example, tutorials/MyFirstSecret). \n"+
                "    secretValue - the secret value. \n";

        if (args.length != 2) {
            System.out.println(USAGE);
            System.exit(1);
        }

        String secretName = args[0];
        String secretValue= args[1];

        Region region = Region.US_EAST_1;
        SecretsManagerClient secretsClient = SecretsManagerClient.builder()
                .region(region)
                .build();

       String secretARN = createNewSecret(secretsClient, secretName, secretValue);
       System.out.println("The secret ARN is "+ secretARN);
       secretsClient.close();
    }

    //snippet-start:[secretsmanager.java2.create_secret.main]
    public static String createNewSecret( SecretsManagerClient secretsClient, String secretName, String secretValue) {

        try {
            CreateSecretRequest secretRequest = CreateSecretRequest.builder()
                .name(secretName)
                .description("This secret was created by the AWS Secret Manager Java API")
                .secretString(secretValue)
                .build();

            CreateSecretResponse secretResponse = secretsClient.createSecret(secretRequest);
            return secretResponse.arn();

        } catch (SecretsManagerException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
    //snippet-end:[secretsmanager.java2.create_secret.main]
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66452388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档