带有 AWS Java SDK 的 JsonErrorUnmarshallerV2 的 NoClassDefFoundError

mar*_*ark 7 java maven aws-sdk

我刚开始使用 DynamoDb,我是 maven 的初学者。我在尝试运行我无法修复的项目时遇到错误。

当我尝试在 IntelliJ 中运行该项目时,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: com/amazonaws/transform/JsonErrorUnmarshallerV2
at com.amazonaws.services.kms.AWSKMSClient.init(AWSKMSClient.java:305)
Run Code Online (Sandbox Code Playgroud)

在顶级 pom 中,我有以下依赖项:

        <dependency>
            <groupId>com.amazonaws</groupId>
            <artifactId>aws-java-sdk</artifactId>
            <version>1.10.39</version>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西,例如分别包括 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>
Run Code Online (Sandbox Code Playgroud)

我总是得到同样的错误。mvn clean 和 mvn install 正常工作,但运行应用程序失败。

我可以看到调试器中没有 JsonErrorUnmarshallerV2 的定义,但是 aws-sdk-core 应该提供这个并且应该包括在内。

如何修复或进一步调试此问题?

mar*_*ark 16

事实证明

   <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
        <version>1.10.40</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

不包括 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>
Run Code Online (Sandbox Code Playgroud)