RESTEasy Client + NoSuchMethodError

Je suis en train d'écrire de simples RESTEasy client. Donnée ci-dessous est un exemple de code:

Client client = ClientBuilder.newBuilder().build();
WebTarget target = client.target("http://localhost:8080/context/path");
Response response = target.request().post(Entity.entity(object, "application/json"));

//Read output in string format
String value = response.readEntity(String.class);

- Je obtenir de l'exception à la ligne:

Client client = ClientBuilder.newBuilder().build();

Je vois des erreurs suivantes dans ma console:

16:07:57,678 ERROR [stderr] (http-localhost/127.0.0.1:8080-1) java.lang.NoSuchMethodError: org.jboss.resteasy.spi.ResteasyProviderFactory.<init>(Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)V

16:07:57,679 ERROR [stderr] (http-localhost/127.0.0.1:8080-1)   at org.jboss.resteasy.client.jaxrs.internal.ClientConfiguration.<init>(ClientConfiguration.java:44)

16:07:57,680 ERROR [stderr] (http-localhost/127.0.0.1:8080-1)   at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:317)

16:07:57,680 ERROR [stderr] (http-localhost/127.0.0.1:8080-1)   at org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder.build(ResteasyClientBuilder.java:49)

J'ai ajouté resteasy client dépendance pom.xml comme:

  <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-client</artifactId>
      <version>3.0.8.Final</version>
  </dependency>

Mon code est déployé sur JBOSS EAP 6.1. La version de JDK 1.7.

Mise à jour:
J'ai aussi essayé d'ajouter resteasy jax-rs de dépendance dans mon pompon. J'ai aussi vérifié si ResteasyProviderFactory est activée par l'ajout des lignes suivantes dans mon web.xml:

  <listener>
    <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class>
  </listener>

Veuillez trouver ci-dessous la liste des dépendances de maven:

<dependencies>

    <dependency>
        <groupId>org.jboss.spec.javax.ejb</groupId>
        <artifactId>jboss-ejb-api_3.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-validator</artifactId>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-jaxrs</artifactId>
        <version>3.0.8.Final</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.jboss.resteasy</groupId>
      <artifactId>resteasy-client</artifactId>
      <version>3.0.8.Final</version>
    </dependency>

    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.2.4</version>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.junit</groupId>
        <artifactId>arquillian-junit-container</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian.protocol</groupId>
        <artifactId>arquillian-protocol-servlet</artifactId>
        <scope>test</scope>               
    </dependency>

</dependencies>

Mais il ne marche pas.

De l'exception, je ne suis pas en mesure de comprendre ce qui est manquant. Je ne suis pas en mesure de trouver des références pour ce problème sur ou tout autres forums. S'il vous plaît laissez-moi savoir, si vous avez vu cette question tout à l'heure et vous savez comment résoudre ce problème.
Merci.


Mise À Jour Le 11 Juin 2014:

Après en se référant ce blog et par l'exclusion de certains resteasy et jackson modules, j'ai essayé de créer similaires jboss-deployment-structure.xml et de les garder dans META-INF dans le dossier mon EJB projet. Cela a résolu mon problème de NoSuchMethodError pour "org.jboss.resteasy.le spi.ResteasyProviderFactory.(Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)" . La Structure de ma jboss-deployment-structure.xml est:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
   <deployment>
       <exclude-subsystems>
           <subsystem name="resteasy"/>
       </exclude-subsystems>
     <exclusions>
       <!-- <module name="org.apache.log4j" /> -->
       <module name="org.apache.commons.logging"/>
       <module name="org.jboss.as.jaxrs"/>
       <module name="org.jboss.resteasy.resteasy-jaxrs"/>
       <module name="org.jboss.resteasy.resteasy-cdi"/>
       <!-- <module name="org.jboss.resteasy.jackson-provider"/>
       <module name="org.jboss.resteasy.resteasy-atom-provider"/>
       <module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider"/>
       <module name="org.jboss.resteasy.resteasy-jaxb-provider"/>
       <module name="org.jboss.resteasy.resteasy-jettison-provider"/>
       <module name="org.jboss.resteasy.resteasy-jsapi"/>
       <module name="org.jboss.resteasy.resteasy-multipart-provider"/>
       <module name="org.jboss.resteasy.resteasy-yaml-provider"/>
       <module name="org.codehaus.jackson.jackson-core-asl"/>
       <module name="org.codehaus.jackson.jackson-jaxrs"/>
       <module name="org.codehaus.jackson.jackson-mapper-asl"/>
       <module name="org.codehaus.jackson.jackson-xc"/>
       <module name="org.codehaus.jettison"/>
       <module name="javax.ws.rs.api"/> -->
     </exclusions>
   </deployment>
 </jboss-deployment-structure>

Mais maintenant je vois l'exception similaire pour une autre méthode:

Caused by: java.lang.NoSuchMethodError: javax.ws.rs.core.Response.readEntity(Ljava/lang/Class;)Ljava/lang/Object;
    at com.example.data.DemoProxyBean.callDemoTx(DemoProxyBean.java:59) [demo-service.jar:]
    at com.example.data.DemoProxyBean$Proxy$_$$_WeldClientProxy.callDemoTx(DemoProxyBean$Proxy$_$$_WeldClientProxy.java) [demo-service.jar:]

Et je vois cette exception à la ligne:

String value = response.readEntity(String.class);

Bizarre, c'est que, quand j'ai inspecter "réponse.readEntity(String.class)", pendant le débogage, je peux voir la Chaîne de valeur. Mais quand j'essaie d'aller à l'étape suivante de la ligne, je vois cette erreur. Pouvez-vous svp me guider, ce qui pourrait être le problème?

Plus de mise à jour:

J'ai évoqué ce JBOSS issue tracker. Mais elle était liée à WildFly, et pas de serveur EAP. Il nous demande d'exclure le module "javaee-api". J'ai essayé à l'exclusion des "javaee-api" module, mais il ne fonctionne pas.

On dirait que vous avez les différentes versions de resteasy-client dans le classpath ou vous avez des différences entre les compiler un versions du moteur d'exécution.
J'ai essayé de commenter resteasy-client de la dépendance à partir de mon pom.xml. Il a donné les erreurs de compilation. Donc je suppose qu'il n'y a qu'une seule version de resteasy-client jar dans le classpath.
sur le temps de compilation et de l'exécution? existe-il plusieurs versions dans le classpath de votre jboss?
Si j'essaie de supprimer resteasy-client de dépendance eclipse compains en disant qu'il n'est pas en mesure de trouver des classes comme ClientBuilder. Et il n'y a pas d'autres bocal de les importer de.
J'ai mis à jour question plus loin avec plus d'analyse et l'état actuel. S'il vous plaît laissez-moi savoir, si vous avez une idée sur la cause exacte.

OriginalL'auteur user613114 | 2014-06-10