java.lang.ClassNotFoundException:com.amazonaws.ClientConfigurationFactory

java.lang.ClassNotFoundException:com.amazonaws.ClientConfigurationFactory,java,amazon-web-services,amazon-s3,amazon-kinesis-firehose,Java,Amazon Web Services,Amazon S3,Amazon Kinesis Firehose,我从过去6个月开始使用aws,我开发了一个应用程序,将批处理请求提交给firehose。直到今天它还可以正常工作,但当我在本地系统中重新部署时,它说java.lang.ClassNotFoundException:com.amazonaws.ClientConfigurationFactory。我知道这个错误的意思。但我的问题是为什么我今天得到了这个例外?我在项目中使用以下依赖项: <dependency> <groupId>com.amazona

我从过去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>

亚马逊网站
aws java sdk
//我今天使用这个版本只是为了测试
1.10.6
亚马逊网站
aws java sdk核心
1.10.37
假的
亚马逊网站
aws java sdk运动学
释放
我搜索了
ClientConfigurationFactory
类,但没有找到任何地方(我的依赖项中的任何地方都是指)

我的问题是这个类在哪里,为什么我今天才出现这个错误?因为我在最初的开发中(6个月前)没有遇到这个错误。我今天没有更改任何依赖项/代码。而且我没有在我的项目中使用这个类(我怀疑
awsdk
是否在内部使用过)

注意:我不能问我是否遗漏了任何依赖项?,因为它以前工作正常


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

这很可能是因为您包含的AWS SDK版本不匹配。您使用的是SDK版本1.10.6、1.10.71、1.10.37和发行版的组合。你会像现在这样在混合版本时自找麻烦。将所有这些更改为同一版本,您的问题很可能会消失。

但以前这些版本都可以使用。今天我在另一个项目中使用了sdk版本
1.10.72
。我认为这可能是我的maven依赖性问题/冲突,所以我清除了.m2文件夹并重试了一次,但没有成功。您意识到,使用
RELEASE
作为一个版本,您可能会在每次构建时引入一个新版本。因此,以前处理这种版本不匹配的情况并不意味着它将继续工作。你需要修复你的AWS SDK版本依赖项,使之完全相同。是的,你的评论有意义。我会检查。但是这个类位于哪个依赖项中?知道吗?这就是它应该包含该类的依赖关系:
aws java sdk
肯定在那里:@ManoDestra是的,这个类在那里,但我检查了我的依赖关系,我没有找到,这就是我问的原因。是的。只是一个版本问题:)我的问题是为什么我在最初的开发过程中没有面对这个问题?我使用了我在问题中提到的这些版本的依赖项。我个人认为你的问题不需要向下投票。很好。但这里的问题是依赖项的版本控制不一致。无法保证这会奏效。我想你之前只是幸运而已@马克的回答是正确的。