Configuration du fichier web.xml pour les filtres JAX-RS
Le fichier web.xml contient des informations sur la structure et les dépendances externes de composants web dans le module ; il décrit aussi comment les composants sont utilisés lors de l'exécution. Pour que le conteneur web puisse exécuter des applications Java™ API for RESTful Web Services (JAX-RS), vous pouvez configurer le fichier web.xml pour définir des filtres qui indiquent les URL possibles sur lesquels les filtres peuvent être appelés.
Pourquoi et quand exécuter cette tâche
Vous pouvez configurer le fichier web.xml de l'application web pour activer le code d'application JAX-RS. Vous pouvez également utiliser un filtre JAX-RS spécifique à IBM® pour l'exécution du code JAX-RS. Le fichier web.xml fournit des informations de configuration et de déploiement pour les composants web qui contiennent une application Web. Consultez les informations relatives à la configuration du fichier web.xml pour JAX-RS pour plus d'informations sur ce fichier de descripteur de déploiement.
Lorsque vous utilisez des servlets, les chemins de servlet définis dans le fichier web.xml sont ajoutés à l'URL de base. Les filtres n'ajoutent pas de chemin à l'URL de base de ressource. En fait, les mappages d'URL de filtre indiquent les URL sur lesquelles le filtre peut être appelé. Par exemple, si une ressource racine a la valeur myresource pour @javax.ws.rs.Path, l'URL finale est http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/myressource. Le modèle de mappage d'URL de filtre doit correspondre à myresssource pour gérer correctement la ressource racine. Par exemple, vous pouvez utiliser /* ou /myresource pour le modèle d'URL. Lorsqu'il existe plusieurs ressources dans l'application, le modèle d'URL de filtre doit correspondre à toutes les ressources. Le modèle /* est une valeur commune pour le filtre.
Si l'URL de demande entrante ne correspond à aucune ressource JAX-RS dans l'application JAX-RS, la demande est envoyée au reste de la chaîne de filtres. Selon l'application, vous pouvez utiliser le comportement de filtrage pour que l'application JAX-RS gère les demandes ou si aucune ressource JAX-RS n'est disponible, la demande peut accéder à un artefact de conteneur web sous-jacent, tel qu'une JSP (JavaServer Pages). Si le conteneur web ne dispose d'aucun artefact correspondant, il est responsable de la réponse d'erreur.
Procédure
Résultats
Exemple
L'exemple suivant montre un fichier WEB-INF/web.xml configuré pour appliquer des filtres à une application JAX-RS. Cet exemple définit le filtre RestApplication1. Si une URL de demande entrante correspond à une ressource dans le filtre RestApplication1, la réponse est générée depuis le filtre RestApplication1. Si l'URL de demande entrante ne correspond pas une ressource dans le filtre RestApplication1, mais correspond à une ressource dans le filtre OtherRestApplicationFilter, la réponse est générée depuis le filtre OtherRestApplicationFilter. Si l'URL entrante ne correspond à aucun des filtres, la demande peut être gérée depuis un autre artefact de conteneur web, tel qu'une JSP.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>RestApplication1</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.sample.app1.MyApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>restApplication1ProcessorID</param-value>
</init-param>
</filter>
<filter>
<filter-name>OtherRestApplicationServlet</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.other.sample.OtherApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>otherRestApplicationID </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RestApplication1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OtherRestApplicationServlet</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
Que faire ensuite
Assemblez l'application Web.