java.lang.NoSuchMethodError: com.amazonaws.protocol.json.JsonErrorShapeMetadata.withExceptionUnmarshaller
java.lang.NoSuchMethodError: com.amazonaws.protocol.json.JsonErrorShapeMetadata.withExceptionUnmarshaller
正在尝试调用 AWS 机密管理器 api 以获取机密。但是在部署 jar 时出现此错误。我已确保依赖项包含在 jar 中。
POM:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.647</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.647</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-secretsmanager</artifactId>
<version>1.11.647</version>
</dependency>
代码片段
val client: AWSSecretsManager = AWSSecretsManagerClientBuilder
.standard()
.withRegion(region)
.build()
错误:
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClient.<clinit>(AWSSecretsManagerClient.java:148)
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder.build(AWSSecretsManagerClientBuilder.java:61)
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder.build(AWSSecretsManagerClientBuilder.java:27)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)```
...
withExceptionUnmarshaller()
自版本 1.11.622 以来已在 com.amazonaws.protocol.json.JsonErrorShapeMetadata
中引入:
你的 pom.xml
似乎是正确的。
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.647</version>
</dependency>
因此当 运行.
时,您的程序可能会引用 aws-java-sdk-core.jar
的另一个旧版本
我已经浪费了很多时间来通过那个错误,但仍然不能。最后我使用了另一个 sdk。
我没有使用 aws-java-sdk-core 中的 com.amazonaws,而是使用了 software.amazon.awssdk 成功了-
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>secretsmanager</artifactId>
<version>2.14.7</version>
</dependency>
并使用此处记录的代码 - GetSecretValue
正在尝试调用 AWS 机密管理器 api 以获取机密。但是在部署 jar 时出现此错误。我已确保依赖项包含在 jar 中。
POM:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.647</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.647</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-secretsmanager</artifactId>
<version>1.11.647</version>
</dependency>
代码片段
val client: AWSSecretsManager = AWSSecretsManagerClientBuilder
.standard()
.withRegion(region)
.build()
错误:
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClient.<clinit>(AWSSecretsManagerClient.java:148)
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder.build(AWSSecretsManagerClientBuilder.java:61)
at com.amazonaws.services.secretsmanager.AWSSecretsManagerClientBuilder.build(AWSSecretsManagerClientBuilder.java:27)
at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:46)```
...
withExceptionUnmarshaller()
自版本 1.11.622 以来已在 com.amazonaws.protocol.json.JsonErrorShapeMetadata
中引入:
你的 pom.xml
似乎是正确的。
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.647</version>
</dependency>
因此当 运行.
时,您的程序可能会引用aws-java-sdk-core.jar
的另一个旧版本
我已经浪费了很多时间来通过那个错误,但仍然不能。最后我使用了另一个 sdk。 我没有使用 aws-java-sdk-core 中的 com.amazonaws,而是使用了 software.amazon.awssdk 成功了-
<dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>secretsmanager</artifactId> <version>2.14.7</version> </dependency>
并使用此处记录的代码 - GetSecretValue