Maillot 2 sur Jboss 7

Quelqu'un a eu le succès le déploiement de Jersey 2.x avec JBoss 7.x? J'ai essayé de déployer Jersey 2.5 avec JBoss 7.1.1 mais a rencontré des erreurs comme:

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

Je crois que cette question est parce que JBoss est livré avec RestEasy qui est un JAX-RS 1.0 mise en œuvre, tout en Jersey est un JAX-RS 2.0 mise en œuvre. J'ai donc pris les mesures suivantes pour désactiver RestEasy:

1) Ajouté ce qui suit à mon 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), Suivi de la discussion ici, j'ai modifié mon JBoss' standalone.xml, module.xml et domain.xml pour supprimer toutes les références à JAXRS1.1 /RestEasy.

3) Cela a conduit à une autre erreur: "java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor" que j'ai résolu en ajoutant ce qui suit à mon pom.xml:

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

Donc finalement mon application se déploie sans erreurs, mais maintenant je n'arrive pas à accéder à mon Maillot de ressources. La jetée de 8 fonctionne très bien, cependant. J'ai aussi été en mesure d'exécuter Jersey 1.x sans avoir à prendre des mesures en #2 et #3, mais je préfère utiliser Jersey 2.x si possible.

De plus, j'ai aussi essayé de créer un jboss-deployment-structure.xml fichier, mais j'ai encore rencontrer des erreurs précédentes comme "java.lang.NoSuchMethodError: javax.ws.rs.de base.Application.getProperties()Ljava/util/Map;"

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

Quelqu'un avait une chance avec Jboss et Jersey 2.x? Toute aide serait appréciée.

Ce doit être en relation avec J2EE bibliothèques qui sont contradictoires. être sûr que la version de java est à l'aide en jersey 2, et la version de j2ee bibliothèques fournies par votre version de Jboss. vérifier
Depuis javax.ws.rs.de base.L'Application est dans le module javax.ws.rs.api, à l'exclusion de cette jboss-deployment-structure.xml devrait supprimer la classe. Utilisez-vous de l'OREILLE ou de la GUERRE, où avez-vous mis l'jboss-deployment-structure.xml? Vous pouvez activer la Journalisation avec la catégorie "jboss.des modules" à la TRACE ou de regarder le MBean jboss.modules:type=ModuleLoader pour obtenir plus d'informations
Je suis à l'aide d'une GUERRE et essayé d'ajouter jboss-deployment-structure.xml WEB-INF et META-INF et obtenir les mêmes résultats. Réglage du niveau d'enregistrement de trace révèle que l'jboss-deployment-structure.xml est en effet pas à l'exclusion de la JAXRS 1.x javax.ws.rs.de base.l'application, donc je suis à la recherche dans pourquoi. Erhan, j'ai aussi essayé de compiler mon GUERRE par le biais de Maven avec le Java7 compilateur (JBoss utilise Java7 mais je compile à la GUERRE avec Java6) mais rien n'a changé.
J'ai peur, je ne sais vraiment pas pourquoi il ne fonctionne pas dans votre cas. L'échange d'hibernate 4 avec 3 ou JSF 2 avec 1,2 travaillé très bien pour moi. Mais ensuite, j'ai toujours échangé un module à un autre (autre logement) Peut-être javaee.api tire dans le javax.ws.rs.api événement si ses exclus. Je voudrais essayer de supprimer temporairement la dépendance sur javax.ws.rs.api dans le module javaee.api et/ou de créer un module javax.ws.rs.api avec un autre logement et votre Maillot de mise en œuvre et de l'inclure dans WEB-INF/jboss-deployment-structure.xml. Mais alors je ne peux pas garantir que les ist aide.
Semble que javaee.api tire javax.ws.rs.api module de manière transitive. Voir ici : community.jboss.org/thread/231153

OriginalL'auteur Minh Nguyen | 2014-01-16