新 AmazonS3Client 上的 java.lang.NoClassDefFoundError

标签 java amazon-s3

当我尝试创建新的 AmazonS3Client 对象时

client = new AmazonS3Client(new BasicAWSCredentials(S3ACCESS_KEY, S3SECRET_KEY));

我收到此错误:

Caused by: java.lang.NoClassDefFoundError: org/apache/http/HttpRequest

我的项目包含 httpcore-4.1.jar,我可以在其中看到 HttpRequest.class 文件。我还包含 httpclient-4.1.3.jar。这对这个有影响吗?

该项目构建得很好,只有在创建新的 AmazonS3Client 对象时才会遇到此错误。有什么想法吗?

最佳答案

我相信您的问题是 http 客户端版本错误。查看amazonws maven Artifact ,它依赖于`HttpCLient 4.2.1。

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.2.15</version>
</dependency>

使用 HttpClient 4.2.1。

关于新 AmazonS3Client 上的 java.lang.NoClassDefFoundError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12309151/

相关文章:

maven - 如何在Gradle构建中为S3支持的Maven存储库使用默认的AWS凭证链?

angularjs - 将 blob 文件上传到 Amazon s3

tomcat - 通过 Chef 将资源从 Amazon S3 转移到 Tomcat

Java:有效的数据结构来存储没有 'logical' 重复项的对象

java - 打包 Spring 管理的 Axis2 Web 服务客户端

java - 如何在 Trie 数据结构中使用字符串频率列表?

ios - 带有自定义 header 的 AWSS3GetPreSignedURLRequest 上传,给出 403

java - 如何在java中获取url html内容到字符串

java - 在 Ant build.properties 中添加环境变量

amazon-s3 - 使用 aws cli 在用户本地下载 s3 存储桶文件