Jersey 2 auf Jboss 7

Hat jemand hatte Erfolg bereitstellen Jersey 2.x mit JBoss 7.x? Ich habe versucht, Bereitstellung von Jersey 2.5 mit JBoss 7.1.1, aber Fehler wie:

"java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;"

Ich glaube dieses Problem ist, weil JBoss kommt gebündelt mit RestEasy ist eine JAX-RS 1.0-Implementierung während der Jersey ist die JAX-RS 2.0 Implementierung. So nahm ich die folgenden Schritte zum deaktivieren des RestEasy:

1) Hinzugefügt, das folgende zu meinem web.xml:

<context-param>
    <param-name>resteasy.scan</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.providers</param-name>
    <param-value>false</param-value>
</context-param>
<context-param>
    <param-name>resteasy.scan.resources</param-name>
    <param-value>false</param-value>
</context-param>

2) Folgte die Diskussion hier, ich veränderte meinen JBoss' standalone.xml, module.xml und domain.xml entfernen Sie alle Verweise auf JAXRS1.1 /RestEasy.

3) Dies führte zu einem weiteren Fehler: "java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor", die ich gelöst, indem Sie das folgende zu meinem pom.xml:

<dependency>
    <groupId>asm</groupId>
    <artifactId>asm</artifactId>
    <version>3.3.1</version>
</dependency>

So endlich ist meine app nutzt, ohne Fehler, aber jetzt kann ich nicht scheinen, um Zugang zu meinem Trikot Ressourcen. Jetty 8 funktioniert gut, jedoch. Ich war auch in der Lage zu laufen, Jersey 1.x, ohne dass Schritte #2 und #3, aber ich würde es vorziehen, zu verwenden, Trikot 2.x wenn möglich.

Zusätzlich habe ich auch versucht die Schaffung eines jboss-deployment-structure.xml Datei, aber dann habe ich noch die Begegnung mit der früheren Fehler, wie "java.lang.NoSuchMethodError: javax.ws.rs.core.- Anwendung.getProperties()Ljava/util/Karte;"

<?xml version="1.0" encoding="UTF-8"?>  
<jboss-deployment-structure>
  <deployment>
    <exclusions>
            <module name="org.jboss.resteasy.resteasy-atom-provider"/>  
            <module name="org.jboss.resteasy.resteasy-cdi"/>  
            <module name="org.jboss.resteasy.resteasy-jackson-provider"/>  
            <module name="org.jboss.resteasy.resteasy-jaxb-provider"/>  
            <module name="org.jboss.resteasy.resteasy-jaxrs"/>  
            <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.apache.log4j"/>  
            <module name="org.apache.commons.pool"/>  
            <module name="javax.ws.rs.api"/>
    </exclusions>
  </deployment>
</jboss-deployment-structure>

Hat jemand hatte kein Glück mit Jboss und Jersey 2.x? Jede Hilfe würde geschätzt werden.

  • Dies sollte im Zusammenhang mit J2EE-Bibliotheken, die in Konflikt sind. sicher ist, dass die version von java ist die Verwendung von jersey 2, und die version von j2ee-Bibliotheken zur Verfügung gestellt, die durch Ihre Jboss-version. überprüfen Sie Sie
  • Seit javax.ws.rs.core.Anwendung im Modul javax.ws.rs.api, ohne diese in jboss-deployment-structure.xml sollte entfernen Sie die Klasse. Verwenden Sie OHR-oder Kriegszeiten, wo haben Sie die jboss-deployment-structure.xml? Sie können die Protokollierung aktivieren, mit der Kategorie "jboss.- Module" auf eine SPUR oder ein Blick auf die MBean jboss.Module:type=ModuleLoader um mehr Informationen zu erhalten
  • Ich bin mit einem KRIEG und habe versucht, hinzufügen jboss-deployment-structure.xml WEB-INF und META-INF und erhalten die gleichen Ergebnisse. Festlegen der Protokollierungsstufe für die Ablaufverfolgung zeigt, dass die jboss-deployment-structure.xml ist ja auch nicht ohne die JAXRS 1.x javax.ws.rs.core.Anwendung, ich bin auf der Suche, warum. Erhan, ich habe auch versucht zu kompilieren KRIEG meine durch Maven mit der Java7-compiler (JBoss verwendet Java7 aber ich kompilieren der KRIEG mit Java6), aber nichts änderte sich.
  • Ich fürchte, ich weiß wirklich nicht, warum es nicht funktioniert in deinem Fall. Austausch von hibernate 4 mit 3 oder JSF 2 mit 1.2 hat bei mir ganz gut. Aber dann habe ich immer getauscht, ein Modul mit einem anderen (anderer slot) Vielleicht Java ee.api zieht in die javax.ws.rs.api-Ereignis aus, wenn die ausgeschlossen werden. Ich würde versuchen, vorübergehend zu entfernen und die Abhängigkeit javax.ws.rs.api in Java ee-Modul.api und/oder erstellen Sie ein Modul javax.ws.rs.api mit einem anderen Steckplatz und Ihre Jersey-Implementierung und umfassen im WEB-INF/jboss-deployment-structure.xml. Dann kann ich aber nicht garantieren, dass tritt hilft.
  • Scheint, dass Java ee.api zieht javax.ws.rs.api-Modul transitiv. Siehe hier : community.jboss.org/thread/231153
InformationsquelleAutor Minh Nguyen | 2014-01-16
Schreibe einen Kommentar