我刚开始使用DynamoDb而且我是maven的初学者。我试图运行我无法修复的项目时遇到错误。
当我尝试在IntelliJ中运行项目时,我得到:
Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/transform/JsonErrorUnmarshallerV2
at com.amazonaws.services.kms.AWSKMSClient.init(AWSKMSClient.java:305)
在顶级pom中,我有以下依赖关系:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.39</version>
</dependency>
我尝试了很多东西,例如单独包括KMS的maven依赖,引用sdk和kms的最新版本,以及相同版本的sdk和kms。我试过把bom和sdk包括在内:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>1.10.40</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.40</version>
</dependency>
我总是得到同样的错误。 mvn clean和mvn安装工作没有错误,但运行应用程序失败。
我可以看到调试器中没有JsonErrorUnmarshallerV2的定义,但是aws-sdk-core应该提供这个并且应该包括在内。
如何修复或进一步调试此问题?
答案 0 :(得分:2)
事实证明
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.40</version>
</dependency>
不包括aws-core,我需要单独包含它,即
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.10.40</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.10.40</version>
</dependency>
答案 1 :(得分:0)
Mark针对此JsonErrorUnmarshallerV2的NoClassDefFoundError(具有AWS Java SDK错误)提供了正确的答案。 缺少aws-java-sdk-core依赖项。获得最新的; -AWS网站, -Maven存储库