java.lang.ClassNotFoundException:com.amazonaws.ClientConfigurationFactory

Yub*_*raj 12 java amazon-s3 amazon-web-services amazon-kinesis-firehose

我从最近6个月开始使用aws,我开发了将批量请求放到firehose的应用程序.它一直工作到今天,但当我在我的本地系统重新部署时,它说java.lang.ClassNotFoundException: com.amazonaws.ClientConfigurationFactory.我知道这个错误意味着什么.但我的问题是为什么我今天得到这个例外?我在我的项目中使用以下依赖项:

    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk</artifactId>
    <!--    <version>1.10.72</version> --> // I used this version today only for testing purpose
        <version>1.10.6</version>
    </dependency>
    <!-- <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-s3</artifactId>
        <version>1.10.71</version>
    </dependency> -->
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-core</artifactId>
        <version>1.10.37</version>
        <optional>false</optional>
    </dependency>
    <dependency>
        <groupId>com.amazonaws</groupId>
        <artifactId>aws-java-sdk-kinesis</artifactId>
        <version>RELEASE</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

我搜索了ClientConfigurationFactory课程,但没有找到任何地方(任何地方意味着我的依赖).

我的问题是这个类位于何处以及为什么我今天才会收到此错误?因为我在最初的开发中(6个月前)没有遇到这个错误.我今天没有更改任何依赖项/代码.而且我在我的项目中没有使用这个类(我怀疑aws-sdk可能在里面使用过).

注意:我不能问我是否错过任何依赖?因为之前工作正常.

如果您有任何疑问,请发表评论.谢谢.

Mar*_*k B 17

这很可能是因为您包含的AWS SDK版本不匹配.您正在使用SDK版本1.10.6,1.10.71,1.10.37和RELEASE的组合.您要求混淆版本,就像您正在做的那样.将所有这些更改为相同版本,您的问题可能会消失.

  • 您可以通过`RELEASE`作为一个版本来实现,每次进行构建时,您都可能会使用新版本.因此,之前使用此版本不匹配的工作并不表示它将继续工作.您需要将AWS SDK版本依赖项修复为全部相同. (4认同)