2017-07-20 2 views
-1

Je suis en train de créer une connexion HTTP avec une URL dans un EJB et la ligne de code ci-dessous jetais erreurNoSuchMethodError sur HttpClients.custom(). SetConnectionManagerShared (true) .build()

HttpClients.custom().setConnectionManagerShared(true).build(); 

eRREUR:

java.lang.NoSuchMethodError: org.apache.http.impl.client.HttpClientBuilder.setConnectionManagerShared(Z)Lorg/apache/http/impl/client/HttpClientBuilder; 

au départ, je ne précise pas quelle version de HttpClient, donc j'ajouté le GAV à mon pom.xml

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

Je me suis assuré que le fichier de guerre avait ce pot. Il n'y avait pas d'erreur dans Eclipse pendant la compilation.

Mais chaque fois que je l'exécute, j'obtiens le NoSuchMethodError. J'utilise Java version 1.8.0_131.

Je suis totalement confus parce que si je n'ai pas eu cette erreur au moment de la compilation, pourquoi est-ce que je l'obtiens sur Runtime? Toute aide est grandement appréciée

+0

Vérifiez que les répertoires de votre serveur ne contiennent pas une autre version de httpclient. – Berger

Répondre

0

C'est un problème de dépendance jar. Plusieurs jars sont disponibles pour cette classe dans votre code. S'il vous plaît vérifier les pots qui utilisent la structure du paquet avec la commande ci-dessous et trouver le coupable pour cela.

dépendance mvn: arbre -Dverbose -Dincludes = org.apache.http.impl.client