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.
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
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser Jersey 2 sur JBoss 7, si vous configurez votre jboss-deployment-structure.xml similaire à ceci:
Parce que JBoss 7 comprend les dépendances de modules, il n'est pas suffisant pour exclure la resteasy module lui-même, mais vous avez besoin d'exclure l'ensemble javaee.l'api du module. Assurez-vous également de ne pas exclure trop grand nombre de modules. Cela peut aussi casser votre application - l'exemple ci-dessus est suffisante pour désactiver resteasy.
Comme vous l'avez déjà découvert, vous devez toujours inclure les lignes suivantes dans votre web.xml
Aussi, l'ensemble de mon Maillot de ressources bien fonctionner dans la Jetée, donc je pense qu'il a peut-être quelque chose à faire avec JBoss exclusions?
En fait, j'ai été en mesure d'obtenir le Jersey à lire mes ressources et le travail autour de la 404 question. Pour une raison quelconque, paquet de numérisation n'a pas de travail dans JBoss mais j'ai pu tout de l'utilisation des ressource de classe de l'enregistrement. Merci encore pour votre aide
cette réponse a été très utile!
OriginalL'auteur Clemens82
Ceci est similaire à ce question
Donc peu de copier/coller avec juste différents sous-système à jouer.
Vous devez exclure jaxrs sous-système n'est pas activé pour votre déploiement
ajouter ce dans META-INF/jboss-deployment-structure.xml
ou vous pouvez aller à standalone.xml et de supprimer le sous-système.
Pour ce faire, vous devez supprimer
partie de la configuration, l'extension de la partie de sur le dessus de séjour il l'habitude de mal de toute façon.
ou vous pouvez vous connecter au serveur avec le CLI et exécuter
En tout cas, je vous recommande de le lire peu à propos de chargement de classe dans AS7 https://docs.jboss.org/author/display/AS72/Class+Chargement+en+AS7
Juste une remarque, d'exclure les sous-systèmes de la fonctionnalité et de déploiement-structure:1.2 a été ajouté dans 7.1.2 et en tant que tel ne fonctionnera pas sur 7.1.1.
Vous pouvez toujours supprimer jaxrs sous-système, mais qui affecte tout le serveur.
OriginalL'auteur ctomc
J'ai eu presque le même problème (https://stackoverflow.com/a/38273524/4534078):
"Besoin d'exécuter Jersey 2.23.1 web app, déjà en cours d'exécution sur Tomcat7 dans JBoss 7.1.1."
Malheureusement, rien ici n'a fonctionné pour moi, mais certaines pièces ont été maniable m'emmenant vers une solution finale:
Désactiver Resteasy paquet de numérisation dans votre web.xml:
De supprimer toutes les balises avec "jaxrs" de l'standalone.xml. Sinon, vous aurez toujours le visage LinkageError parce que JBoss garde 1.1 spec "sur".
Créer yourApp.la guerre!WEB-INF\jboss-deployment-structure.xml comme il est indiqué ici: https://docs.jboss.org/author/display/AS7/Class+Loading+in+AS7#ClassLoadinginAS7-JBossDeploymentStructureFile
De cette façon, non seulement:
java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
Disparait, mais aussi, JAXB fonctionne très bien (Pas de
ClassNotFoundException for javax.xml.bind.JAXBException
une fois le modulejavax.xml.bind.api
est également activé).Obs1: La question de départ est un mélange de jersey 1.x avec jersey 2.x. Il n'y a pas de PojoMappingFeature en jersey 2.x et le forfait de base est
org.glassfish.jersey
. Jetez un oeil à https://jersey.java.net/documentation/latest/migration.html#mig-1-x-jsonObs2: j'ai aussi essayé d'autres approches comme l'extension de la ResourceConfig et la numérisation des forfaits à partir de là, ou en vous inscrivant directement des catégories. Rien n'a fonctionné comme la documentation adéquate à l'article 3. Donc gardé ma servlet intacte:
J'espère que cela aide!
OriginalL'auteur Reginaldo Santos
Voici la combinaison qui a fonctionné pour moi (c'était les autres réponses dans ce post - merci à tous!).
À ce point de l'application web déployée avec succès sans erreur, mais j'ai été prise en 404 essaie d'accéder à mon service REST.
OriginalL'auteur Russ Jackson
La suite de Clemens82 réponse, Après l'exclusion de la javaee.api module, j'ai rencontré ce problème:
Pour le fixer, j'ai dû ajouter de la javax.xml.ws.api dépendance en jboss-deployment-structure.xml. En outre, j'ai ajouté le javax.servlet.api comme cela devrait être fourni par conteneur, si à l'aide de servlets.
OriginalL'auteur Zammo Holtenhoffen