Exception in thread "main" java.lang.NullPointerException: Cannot invoke "software.amazon.awssdk.identity.spi.IdentityProviders.toBuilder()" because the return value of "software.amazon.awssdk.core.client.config.SdkClientConfiguration.option(software.amazon.awssdk.core.client.config.ClientOption)" is null
at software.amazon.awssdk.awscore.client.builder.AwsDefaultClientBuilder.finalizeChildConfiguration(AwsDefaultClientBuilder.java:215)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:188)
at software.amazon.awssdk.services.dynamodb.DefaultDynamoDbClientBuilder.buildClient(DefaultDynamoDbClientBuilder.java:55)
at software.amazon.awssdk.services.dynamodb.DefaultDynamoDbClientBuilder.buildClient(DefaultDynamoDbClientBuilder.java:27)
at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:155)
at org.mattei.service.DynamoDbService.<init>(DynamoDbService.java:25)
at org.mattei.Main.main(Main.java:20)
我收到此异常,我无法弄清楚为什么..我正在尝试使用DynamoDbEnhancedAsyncClient并收到此异常,我不确定调试后缺少哪个选项..检查了许多aws文档,yt等..tia
static String tableName = "rules";
static final TableSchema<Rule> TABLE_SCHEMA = TableSchema.fromBean(Rule.class);
DynamoDbAsyncClient dynamoDbAsyncClient = DynamoDbAsyncClient.create();
DynamoDbEnhancedAsyncClient enhancedClient =
DynamoDbEnhancedAsyncClient.builder()
.dynamoDbClient(dynamoDbAsyncClient)
.build();
DynamoDbAsyncTable<Rule> TABLE = enhancedClient.table(tableName, TABLE_SCHEMA);
您从
AwsDefaultClientBuilder
返回 null 中得到一个空指针异常。这是由于 SDK 尝试获取访问密钥以允许您的代码执行其需要执行的操作而导致的。但您在权限链中没有任何访问密钥,因此它返回 null。
按以下顺序查找凭证的 AWS 凭证提供商链:
环境变量 - AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY(推荐,因为它们可以被除 .NET 之外的所有 AWS 开发工具包和 CLI 识别),或 AWS_ACCESS_KEY 和 AWS_SECRET_KEY(仅可以被 Java SDK 识别)
Java 系统属性 - aws.accessKeyId 和 aws.secretKey
来自环境或容器的 Web 身份令牌凭据
所有 AWS 开发工具包和 AWS CLI 共享的默认位置 (~/.aws/credentials) 中的凭证配置文件文件
如果设置了“AWS_CONTAINER_CREDENTIALS_RELATIVE_URI”环境变量并且安全管理器有权访问该变量,则通过 Amazon EC2 容器服务传递凭证,
通过 Amazon EC2 元数据服务传递的实例配置文件凭证