L'exception est soulevée au cours de l'appel suivantjava.lang.NoSuchMethodError à javax.ws.rs.core.MultivaluedMap.addAll
Response response = client().target(rpTarget())
.path(clusterPath())
.queryParam("api-version", csmv2ApiVersion())
.request(MediaType.APPLICATION_JSON)
.get();
La pile complète de l'exception est
java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V
at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:335)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:221)
at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:59)
....
Je bâtirai mon pot d'application à l'aide "mvn package" et la sortie de génération a les éléments suivants
[INFO] Including javax.ws.rs:javax.ws.rs-api:jar:2.0.1 in the shaded jar.
[INFO] Including org.glassfish.jersey.core:jersey-common:jar:2.19 in the shaded jar.
Je semble utiliser la dernière version de javax.ws.rs-api.jar
qui semble contenir la définition de la méthode MultivaluedMap.addAll
, mais je reçois toujours cette exception.
Pourriez-vous me savoir ce que je manque?
vous appelez une méthode qui n'existe pas - vérifiez à nouveau le doc de votre lib pour faire correspondre les arguments de l'appel avec la définition de la méthode –
Ce problème n'est toujours pas résolu pour moi. Pendant la compilation en utilisant maven, j'ai vu un avertissement indiquant que javax.ws.rs-api.jar v2.0.1 et jersey-core.jar v1.9 ont tous deux implémenté la classe MultivaluedMap. La définition dans jersey-core.jar n'a pas la méthode addAll alors que celle dans javax.ws.rs-api.jar a la méthode. J'ai donc enlevé toutes les dépendances à jersey-core.jar v1.9 en utilisant la balise 'exclusions' dans mon fichier pom.xml. En dépit de ces changements, je vois toujours le même message d'erreur lorsque je lance mon application. J'utilise JDK version jdk1.7.0_79 pour construire et 1.7.0_91 pour exécuter mon application. Appréciez toute aide – Rajesh