【问题标题】:What version of httpclient is compatible with the Amazon SDK v 1.11.5?哪个版本的 httpclient 与 Amazon SDK v 1.11.5 兼容?
【发布时间】:2016-06-07 21:03:43
【问题描述】:

我使用的是 Amazon Java SDK,版本 1.11.5(我将 aws-java-sdk-1.11.5.jar 包含在我的 WEB-INF/lib 目录中)。我需要包含与此版本的 AWS 开发工具包兼容的 Apache httpclient 库的哪个版本?我尝试了httpclient-4.3.4.jar,但出现以下错误

15:34:25,366 ERROR [io.undertow.request] (default task-34) UT005023: Exception handling request to /pluginwiris_engine/app/service: java.lang.NoSuchMethodError:    org.apache.http.conn.ssl.SSLConnectionSocketFactory.<init>(Ljavax/net/ssl/SSLContext;Ljavax/net/ssl/HostnameVerifier;)V
    at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.<init>(SdkTLSSocketFactory.java:56)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.getPreferredSocketFactory(ApacheConnectionManagerFactory.java:87)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:65)
    at com.amazonaws.http.apache.client.impl.ApacheConnectionManagerFactory.create(ApacheConnectionManagerFactory.java:58)
    at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:46)
    at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.create(ApacheHttpClientFactory.java:37)
    at com.amazonaws.http.AmazonHttpClient.<init>(AmazonHttpClient.java:213)
    at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:145)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:393)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:373)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:355)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:327)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:309)

感谢您的额外帮助, - 戴夫

【问题讨论】:

    标签: httpclient apache-httpclient-4.x aws-sdk nosuchmethoderror


    【解决方案1】:

    查看 Java AWS SDK 的源代码,在标签 1.11.5,you can see the in the POM file 下,他们指定了以下内容:

    <httpcomponents.httpclient.version>4.5.2</httpcomponents.httpclient.version>
    

    所以我想说 HTTP 客户端版本 4.5.2 与 AWS 开发工具包版本 1.11.5 兼容。如果您使用的是像 Maven 这样的依赖管理工具,您总是可以让它拉入指定 AWS 开发工具包的 HTTP 客户端版本。

    【讨论】:

    • 我尝试添加这个 jar,但我仍然得到同样的错误,你需要修复它吗?
    • @moondaisy 你的类路径中可能有另一个版本的 httpclient。
    • @LizBennett 是的,最后这是tomcat中webapp文件夹中旧版本的问题
    • 对我不起作用。我取出了我的 http 核心和 http 客户端库,但它仍然无法运行。我也在使用 apache http fluent 客户端,可能是引入了不兼容的版本。
    • 谢谢。从 httpclient-4.5.13.jar 迁移到 httpclient-4.5.2.jar 为我解决了这个问题。
    【解决方案2】:

    查看maven repo for aws-java-sdk-core处的编译依赖

    你可以看到它依赖于 org.apache.httpcomponents » httpclient -- 4.5.2。进一步检查您是否拥有所有dependencies of httpclient-4.5.2。您可能缺少正确版本的 httpcore

    【讨论】:

      猜你喜欢
      • 2021-02-25
      • 1970-01-01
      • 1970-01-01
      • 2017-04-29
      • 2016-08-13
      • 2016-01-06
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多