RESTEasy Client + NoSuchMethodError

Ich versuche einfach schreiben RESTEasy-client. Nachstehend ist Beispiel-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);

Bekomme ich exception in Zeile:

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

Sehe ich folgenden Fehler in meiner Konsole:

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)

Habe ich Hinzugefügt, resteasy-client-Abhängigkeit in pom.xml als:

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

Mein code ist Bereitstellung auf JBOSS EAP 6.1. JDK-version 1.7.

Update:
Ich habe auch versucht, indem resteasy jax-rs Abhängigkeit in meiner pom. Ich habe auch überprüft, wenn ResteasyProviderFactory aktiviert ist, durch hinzufügen der folgenden Zeilen in mein web.xml:

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

Unten finden Sie eine Liste von maven-Abhängigkeiten:

<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>

Aber es funktioniert nicht.

Exception, ich bin nicht in der Lage, um herauszufinden, was fehlt. Ich bin nicht in der Lage zu finden, alle Verweise für dieses Problem auf SO oder anderen Foren. Bitte lassen Sie mich wissen, wenn Sie haben gesehen, dass dieses Problem früher und Sie wissen, wie es zu lösen ist.
Danke.


Update 11. Juni 2014:

Nachdem er dieser blog und durch den Ausschluss von einigen resteasy und jackson Module, ich habe versucht, ähnliche jboss-deployment-structure.xml und halten es im META-INF-Ordner in meinem EJB-Projekt. Dies löste mein Problem der NoSuchMethodError für "org.jboss.resteasy.spi.ResteasyProviderFactory.(Lorg/jboss/resteasy/spi/ResteasyProviderFactory;)" . Struktur meines jboss-deployment-structure.xml ist:

<?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>

Aber jetzt sehe ich ähnlich Ausnahme für die andere Methode:

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:]

Und ich sehe diese Ausnahme in Zeile:

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

Seltsame Sache ist, dass, wenn ich inspizieren "Antwort.readEntity(String.class)", beim Debuggen kann ich sehen, der String-Wert. Aber wenn ich versuche, gehen Sie zum Schritt zur nächsten Zeile, sehe ich diese Fehler. Können Sie bitte führe mich, was könnte das Problem sein?

Weiteres update:

Ich bezog mich auf diese JBOSS Issue-tracker. Aber es wurde im Zusammenhang mit WildFly, und nicht EAP-server. Er bittet uns um auszuschließen Modul "Java ee-api". Ich habe versucht, ohne "Java ee-api" - Modul aber es funktioniert auch nicht.

InformationsquelleAutor der Frage user613114 | 2014-06-10

Schreibe einen Kommentar