Java 在HttpClients.custom()上获取NoSuchMethodError.SetConnectionManager共享(true.build())

Java 在HttpClients.custom()上获取NoSuchMethodError.SetConnectionManager共享(true.build()),java,eclipse,maven,apache-httpclient-4.x,nosuchmethoderror,Java,Eclipse,Maven,Apache Httpclient 4.x,Nosuchmethoderror,我试图在EJB中创建一个带有URL的HTTP连接,下面的代码行抛出了错误 HttpClients.custom().setConnectionManagerShared(true).build(); 错误: java.lang.NoSuchMethodError: org.apache.http.impl.client.HttpClientBuilder.setConnectionManagerShared(Z)Lorg/apache/http/impl/client/HttpClientBu

我试图在EJB中创建一个带有URL的HTTP连接,下面的代码行抛出了错误

HttpClients.custom().setConnectionManagerShared(true).build();
错误:

java.lang.NoSuchMethodError: org.apache.http.impl.client.HttpClientBuilder.setConnectionManagerShared(Z)Lorg/apache/http/impl/client/HttpClientBuilder;
最初我没有指定哪个版本的HttpClient,所以我将GAV添加到pom.xml中

<dependency>
  <groupId>org.apache.httpcomponents</groupId>
  <artifactId>httpclient</artifactId>
  <version>4.5.2</version>
</dependency>

org.apache.httpcomponents
httpclient
4.5.2
我确保战争档案里有那个罐子。在编译时Eclipse中没有错误

但每当我执行它时,我都会得到一个错误。我使用的是Java版本1.8.0131


我完全糊涂了,因为如果我在编译时没有得到那个错误,为什么我在运行时得到它?非常感谢您的帮助

这是jar依赖性问题。代码中有多个JAR可用于该类。请使用下面的命令检查正在使用包结构的JAR,并找出罪魁祸首


mvn dependency:tree-Dverbose-Dincludes=org.apache.http.impl.client

检查您的服务器libs目录是否不包含其他版本的httpclient。是否可以解决此问题?Dincludes应该是[groupId]:[artifactId]:[type]:[version]而不是Java包,所以类似这样的工作原理是:mvn依赖关系:tree-Dverbose-Dincludes=org.apache.httpcomponents:httpclient