Déploiement d'applications Web JAX-RS 1.1
Après avoir assemblé l'API Java™ de l'application Web RESTful Web Services (JAX-RS), vous pouvez déployer le package WAR (web archive) ou EAR (enterprise archive) sur le serveur d'applications.
Avant de commencer
Pour déployer une application Web JAX-RS, vous nécessitez un package WAR ou EAR configuré et activé pour les services RESTful.
Pourquoi et quand exécuter cette tâche
Chaque application Web doit avoir une racine de contexte pour pourvoir la déployer correctement. Une racine de contexte pour chaque module Web est défini dans le descripteur de déploiement de l'application au cours de l'assemblage de l'application ou de son déploiement. La racine de contexte est combinée au mappage de servlet défini à partir du fichier WAR pour composer l'URL complète que tapent les utilisateurs pour accéder au servlet. La racine de contexte de chaque application Web déployée doit être unique sur le serveur. Elle peut être vide également. Par exemple, si une application Web est utilisée comme racine de contexte sample/application/, l'URL de demande de l'application Web commence par http://<hostname>:<port>/sample/application/.
Le modèle d'URL d'un servlet est ajouté à la racine de contexte de l'application Web. Par exemple, si la racine de contexte est sample/application/ et que le mappage d'URL de servlet est rest/api/*, l'identificateur URI de base de l'application web JAX-RS est http://<hostname>:<port>/sample/application/rest/api.
Procédure
Résultats
L'application web JAX-RS est déployée et prête à être utilisée.
Le déploiement d'une application Web Java API for RESTful Web Services (JAX-RS) est correct si vous pouvez accéder à l'application en tapant une URL (Uniform Resource Locator) dans un navigateur ou en suivant un lien. Si vous ne pouvez pas y accéder, suivez les étapes ci-dessous pour éliminer les erreurs courantes de déploiement.

Suivez les conseils ci-dessous pour éliminer les erreurs courantes de déploiement des applications Web JAX-RS.
- Le message d'erreur HTTP 404 Not Found est envoyé au client dans la réponse du serveur.
- Pour résoudre ce problème, procédez comme suit :
- Vérifiez que les classes de ressources racine sont annotées avec l'annotation @javax.ws.rs.Path et que la valeur est correcte dans l'annotation. Les classes de ressources racine sans annotation @Path ne sont pas enregistrées dans l'exécution JAX-RS. Pour en savoir plus, voir la définition des modèles d'identificateur URI des ressources dans les informations des applications RESTful.
- Veillez à ajouter la classe de ressources racine au groupe de classes retournées par la méthode getClasses() des sous-classes de la classe javax.ws.rs.core.Application. Les classes non enregistrées dans les sous-classes de la classe javax.ws.rs.core.Application ne sont pas reconnues par l'environnement d'exécution JAX-RS. Pour plus d'informations, voir la définition des modèles d'identificateur URI des ressources dans les informations des applications RESTful.
- Vérifiez que la configuration web.xml est correcte avec les masques d'URL attendus. Pour plus de détails, voir les informations sur les servlets JAX-RS et les filtres dans le fichier web.xml.
- Vérifiez que l'URL utilisée est correcte et contient la racine de contexte. Si vous utilisez un servlet, le modèle d'URL de servlet fait partie de l'URL finale. Il est peut-être préférable d'utiliser un filtre dans l'application web. Pour plus de détails, voir les informations sur les servlets JAX-RS et les filtres dans le fichier web.xml.
- Le message d'erreur HTTP 405 Method Not Allowed (Méthode non autorisée) est renvoyé au client dans la réponse du serveur.
- Si l'identificateur URI de servlet d'une URL de demande correspond une valeur de chemin de méthode de ressource, mais que la méthode HTTP envoyée ne correspond pas à l'annotation de méthode, un code d'état HTTP 405 Method Not Allowed est renvoyé.
Dans l'exemple de code suivant, l'URL de demande se termine par sayhello, mais la demande contient une méthode POST au lieu d'une méthode GET, si bien que le code 405 est renvoyé.
@javax.ws.rs.Path("helloworld") public class SampleResource { ... @javax.ws.rs.Path("sayhello") @javax.ws.rs.GET public String getHello() { ...
Pour résoudre ce problème, procédez comme suit :
- Vérifiez que la méthode HTTP envoyée correspond à l'annotation de méthode.
- Le message d'erreur HTTP 406 Not Acceptable est envoyé automatiquement au client dans la réponse du serveur.
- Pour résoudre ce problème, procédez comme suit :
- Vérifiez que l'en-tête de requête HTTP Accept dans la demande entrante est correct. Pour plus d'informations, voir les informations relatives à l'implémentation de la négociation de contenu basée sur les informations d'en-tête HTTP.
- Vérifiez que la valeur @javax.ws.rs.Produces dans la méthode de ressource ou la classe de ressources est compatible avec l'en-tête de requête HTTP entrante Accept. Pour plus d'informations, consultez les informations relatives à la définition des types de supports des ressources dans les applications RESTful.
- Le message d'erreur HTTP 415 Unsupported Media Type est envoyé automatiquement au client dans la réponse du serveur.
- Pour résoudre ce problème, procédez comme suit :
- Vérifiez que l'en-tête de requête HTTP Content-Type dans la demande entrante est correcte et envoyé. Pour plus d'informations, consultez les informations relatives à la définition des types de supports des ressources dans les applications RESTful.
- Vérifiez que la valeur @javax.ws.rs.Consumes dans la méthode de ressource ou la classe de ressources est compatible avec l'en-tête de requête HTTP Content-Type HTTP entrante.
- L'état de réponse HTTP 204 No Content est envoyé automatiquement au client dans la réponse du serveur.
- Pour résoudre ce problème, procédez comme suit :
- Déterminez si une réponse null dans votre ressource doit générer un code de réponse 204 Pas de contenu.
Pour plus d'informations sur les problèmes connus et leur résolution, voir la page du support IBM.
Les documents proposés par IBM® peuvent vous aider à collecter plus rapidement les informations nécessaires à la résolution de l'incident.