16

自过去 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>

我搜索ClientConfigurationFactory了类,但没有找到任何地方(任何地方都意味着我的依赖)。

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

注意:我不能问我是否错过了任何依赖项?因为它以前工作得很好。

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

4

1 回答 1

23

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

于 2016-04-22T14:21:34.117 回答