RESTE JAX-RS javax.ws.rs.ProcessingException:
Je suis en dessous exception chaque fois que mon REPOS code client effectue un appel vers le RESTE du service à l'aide de code ci-dessous:
Code:
public void putWatcher(Watcher watcher)
{
System.out.println("In REST Client putWatcher.***********");
target = target.path(RESOURCE_WATCHERS).path(watcher.getWatcheruri());
System.out.println(target.getUri());
Invocation.Builder builder = target.request();
builder.put(Entity.json(watcher));
// Response response = target.request().put(Entity.json(watcher));
System.out.println("Returned from REST Call");
}
Exception:
: javax.ws.rs.ProcessingException: javax.ws.rs.core.Response$Status$Family.familyOf(I)Ljavax/ws/rs/core/Response$Status$Family;
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:255)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:667)
at org.glassfish.jersey.client.JerseyInvocation$1.call(JerseyInvocation.java:664)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:424)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:664)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:424)
at org.glassfish.jersey.client.JerseyInvocation$Builder.put(JerseyInvocation.java:318)
Caused by: java.lang.NoSuchMethodError: javax.ws.rs.core.Response$Status$Family.familyOf(I)Ljavax/ws/rs/core/Response$Status$Family;
at org.glassfish.jersey.message.internal.Statuses$StatusImpl.<init>(Statuses.java:63)
at org.glassfish.jersey.message.internal.Statuses$StatusImpl.<init>(Statuses.java:54)
at org.glassfish.jersey.message.internal.Statuses.from(Statuses.java:93)
at org.glassfish.jersey.client.HttpUrlConnector._apply(HttpUrlConnector.java:323)
at org.glassfish.jersey.client.HttpUrlConnector.apply(HttpUrlConnector.java:227)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:246)
... 29 more
Mon RESTE service est déployé sur Tomcat 8 serveur et le client code est déployé sur JBoss 7.2.
L'application client SIP-Servlets de l'application qui a également bundles RESTE client.
Quand je test le client comme une Application Java autonome, il fonctionne, mais lors de son déploiement sur JBoss il donne l'erreur.
Mon POM fichier est:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<!-- logging dependency -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging-api</artifactId>
<version>1.0.4</version>
<scope>provided</scope>
</dependency>
<!-- web j2ee dependencies -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<!-- sip dependencies -->
<dependency>
<groupId>org.mobicents.servlet.sip</groupId>
<artifactId>sip-servlets-spec</artifactId>
<version>1.7.0.FINAL</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.13</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.13</version>
</dependency>
J'ai aussi essayer de faire comme l'a suggéré sur ce lien https://github.com/gondor/openstack4j/issues/30
Il est dit de désactiver JAX-RS de JBOSS config standalone.xml. Je suis à l'aide de standalone-sip.xml pendant le démarrage du serveur j'ai donc modifié qui ne. Supprimer ces deux lignes:
<subsystem xmlns="urn:jboss:domain:jaxrs:1.0"/>
<extension module="org.jboss.as.jaxrs"/>
Ce n'est pas non plus de travail. Je ne sais pas comment le désactiver, juste cherché JAX-RS et supprimé ces lignes où j'ai trouvé ceux-ci.
Dans une SORTE de post il a été suggéré d'utiliser javax.ws.rs.core.Response respone
au lieu de Response response
essayé aussi mais pas de chance.
Encore une info: l'appel RESTE en lui-même est un succès, que je peux voir sur serveur tomcat.
S'il vous plaît suggérer quoi d'autre peut être fait.
Grâce
OriginalL'auteur user3275095 | 2014-12-05
Vous devez vous connecter pour publier un commentaire.
J'ai récemment rencontré ce problème. Il a été causé par une bibliothèque fournissant une vieille mise en œuvre de
javax.ws.rs.core
. Je l'ai fixée comme suit:La version de la jsr dois-je utiliser à la place, au cas où je mantain?
Oui ce travail, mais je ne comprends pas comment... ne devrions-nous pas avoir à remplacer cette "vieille mise en œuvre" au lieu de simplement le supprimer? Comment avez-vous trouvé cette solution?
OriginalL'auteur user1202136
Pouvez-vous prendre un regard sur les bibliothèques catalogue de votre instance de JBoss et supprimer toutes les implémentations de JAX-WS? Pour moi, il semble qu'ils en conflit avec le Maillot vous intégrez dans votre GUERRE-fichier.
Edit:
En fait, je suppose que vous avez besoin pour résoudre JAX-WS conflit de version entre votre serveur et de l'application web. Méthode familyOf qui vous manque dans Réponse.Statut.La famille a été introduit dans Java 7, mais manquant de Java EE 6. Afin de trouver Java EE 6 compatible Jersey version ou mise à niveau du serveur.
Et si, plus tard, Maven va causer des problèmes, puis pour le véritable coup, il y a aussi
et
OriginalL'auteur Kristjan Veskimäe
J'ai rencontré une erreur similaire. "java.lang.NoSuchMethodError: javax/ws/rs/ClientErrorException.validate(Ljavax/ws/rs/core/Response;Ljavax/ws/rs/core/Response$Status$Family;"
Cause: service web de testeur de performances invoquer le service web à l'aide d'un script sans passer dans le bon corps de la requête.
manque un "/" dans le chemin d'accès de l'url d'appel de service web est une autre affaire.
quand vous voyez cette erreur de validation, cela signifie qu'une erreur majeure déjà arrivé, ce noSuchMethodError n'est qu'une petite sous-produit lors de la manipulation de l'erreur majeure.
OriginalL'auteur Feng Zhang