RestEasy Jax-RS dans Jboss 7.1 ne fonctionne pas
Je suis en train de déployer une application web simple en vertu de JBoss as 7.1 qui est livré avec resteasy. Selon la documentation de tout ce qui est nécessaire est (au minimum) est vide web.xml
, une classe annotée @ApplicationPath("/mypath")
et @Path("/other_stuff")
pour vos autres classes
La documentation, je suis la suite est ici:
- https://docs.jboss.org/author/display/AS7/JAX-RS+Référence+Guide
- https://docs.jboss.org/author/display/AS7/Java+API+pour+Reposante+Web+Services+(JAX-RS)
Encore, quand je frappe:
host:8080/warname/applicationpath/path
Je reçois une erreur 404 sur la page web, mais rien dans les logs.
Est-il un fichier de configuration j'ai besoin de changer pour que JAX-RS de travail?
Je vous remercie d'avance pour toute aide!
J'ai déjà la solution proposée par acdcjunior dans ma webapp, mais Il semble que Jboss ne pas inscrire les ApplicationPath ou le Chemin d'accès. Je ne vois pas quoi que ce soit concernant JAX-RS ou de se Reposer dans mes logs lors du démarrage.
OriginalL'auteur user2221005 | 2013-04-25
Vous devez vous connecter pour publier un commentaire.
Vide
web.xml
fera.Juste ajouter un peu de resteasy dépendance à votre classpath. Par exemple, si vous utilisez maven, vous pouvez l'ajouter à votre
pom.xml
:Puis configurer l'application en utilisant uniquement cette classe:
Juste pour s'assurer, ajouter une ressource de ce genre:
Et c'est tout ce dont vous avez besoin. De le déployer à une JBoss as 7.1 et d'obtenir de lui, dire:
Edit:
J'ai créé un java guerre de projet maven avec le strict minimum structure:
Je l'ai appelé
simpleRest
comme on le voit ci-dessous. Toutes les archives sont exactement comme indiqué:pom.xml:
HelloResource.java
JaxRsActivator.java:
Cela génère un
simpleRest.war
(parmvn clean package
). Je puis déployez un fraîchement installé JBoss as 7.1.1.Final. Comme vous pouvez le voir, aucune référence n'est faite à JAX-RS dans le journal au cours de la déployer:Après cela, l'URL est disponible comme prévu:
Avis que tout le monde donne une erreur 404. Mais il est une autre sorte de 404.
http://127.0.0.1:8080/simpleRest/
donne:Qui est un page ne trouve pas d'erreur. D'autre part,
http://127.0.0.1:8080/simpleRest/rest
donne:Qui est un ressources (service de REPOS) ne trouve pas d'erreur. De cette façon, vous savez JAX-RS est d'agir, si elle n'a pas un gestionnaire pour ce chemin.
Ok, je vais jeter un oeil à ce qui peut mal se passer.
J'ai édité la réponse. Essayé moi-même tout à l'heure. Comme vous pouvez le voir, n'attendez pas que le serveur d'annoncer au cours de déployer qu'il y a un JAX-RS dans la guerre de fichier (comme il le ferait quand il y a un WSDL). Si cette
.war
le programme d'installation ne fonctionne pas pour vous, essayez sur une nouvelle JBoss (obtenir sur le lien que j'ai souligné). Dans cette nouvelle, il faut travailler.Je l'ai fait sur un autre projet et ça marche!!! Je n'ai pas été en mesure de l'intégrer dans mon projet actuel, mais je crois que c'est parce que je suis en utilisant BlazeDS. Je vais créer un autre post pour l'Intégration de BlazeDS et RestEasy. Merci encore pour votre aide!
Génial orientation @acdcjunior, à cause de vous, j'ai enfin réussi à avoir mon propre JAX-RS app de travail avec Wildfly par IntelliJ 😉 après beaucoup de headbanging sur le web...
OriginalL'auteur acdcjunior
Prendre un coup d'oeil à jboss démarrages rapides: http://www.jboss.org/jdf/quickstarts/jboss-as-quickstart/
Vous pouvez les obtenir à partir de http://www.jboss.org/jbossas/downloads
Ces derniers fonctionnent hors de la boîte. Pour helloword-rs de démarrage rapide, je peux voir web.xml avec comme contenu:
et aussi le commentaire:
L'une des façons d'activer RESTE services internes connexes est l'ajout de ces lignes, le serveur est responsable de l'ajout de la servlet correspondant automatiquement. Si le dossier src, org.jboss.comme.démarrages rapides.rshelloworld.HelloWorld classe a les Annotations pour recevoir le REPOS de son invocation.
OriginalL'auteur Andrzej Łach
Si vous êtes à l'aide de JBoss as 7.1, vous devez également ajouter le "resteasy.ressources" paramètre de contexte. Vous devez également envoyer l'init-param de la HttpServletDispatcher servlet.
J'ai trouvé la solution sur le lien suivant : http://www.javaroots.com/2013/05/creating-rest-services-with-rest-easy.html
Juste une faute de frappe d'erreur(peut-être!!) dans le lien ci-dessus. Dans le "RootRestService" modifier la signature de la méthode de la getClasses() la méthode de
public Set<Class<?>> getClasses()
.C'est tout! Il a résolu mon 3 jours de maux de tête. Espérons qu'il vous aide aussi!! 🙂
OriginalL'auteur Manish Dwibedy
Même si acdcjunior de réponse est excellent et très complet, j'aimerais reinfoce Andrzej réponse.
Il fonctionne comme un charme et c'est de loin la plus simple. JBoss exemples de démarrage rapide (également disponible sur GitHub) sont toujours d'une grande ressource pour répondre à des questions comme celle-ci.
OriginalL'auteur Marcel