Configuration du fichier web.xml des services JAX-RS

Le fichier web.xml contient des informations sur la structure et les dépendances externes de composants Web dans le module. De plus, il décrit comment les composants sont utilisés lors de l'exécution. Pour que le conteneur Web exécute les applications JAX-RS (Java™API for RESTful Web Services), vous pouvez configurer le fichier web.xml afin qu'il désigne directement le servlet IBM® JAX-RS. Lors de l'utilisation de servlets, vous pouvez définir un chemin de servlet dans le fichier web.xml qui est ajouté à l'URL de base.

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 servlet 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 d'une application Web. Consultez les informations relatives à la configuration du fichier web.xml pour JAX-RS afin d'obtenir 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. Par exemple, si une ressource racine a la valeur myresource et la valeur myservletpath pour @javax.ws.rs.Path et le chemin de servlet, respectivement, l'URL finale de la ressource est http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>//myservletpath/myresource.

Procédure

  1. Ouvrez le fichier WEB-INF/web.xml.
  2. Ajoutez la définition de servlet suivante au fichier WEB-INF/web.xml. Dans le servlet suivant, vous devez remplacer le nom de servlet unique par votre nom de servlet unique. En outre, remplacez la variable Java_class_name par le package Java complet et le nom de classe de la sous-classe javax.ws.rs.core.Application.
    <servlet>
         <servlet-name>unique_servlet_name</servlet-name>
         <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>Java_class_name </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
  3. (Facultatif) Si plusieurs sous-classes d'application JAX-RS sont requises dans une même application Web, vous devez inclure un paramètre d'initialisation de servlet supplémentaire, requestProcessorAttribute, dans la définition de servlet que vous ajoutez au fichier WEB-INF/web.xml. Dans le servlet suivant, vous devez remplacer le nom de servlet unique par votre nom de servlet unique, la variable nom_classe_Java par le package complet Java et le nom de classe de la sous-classe javax.ws.rs.core.Application et la variable identificateur_unique par un identificateur unique.
    <servlet>
         <servlet-name>unique_servlet_name_a</servlet-name>
         <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>Java_class_name_a </param-value>
         </init-param>
         <init-param>
             <param-name>requestProcessorAttribute</param-name>
             <param-value>unique_identifier_a</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
         <servlet-name>unique_servlet_name_b</servlet-name>
         <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>Java_class_name_b</param-value>
         </init-param>
         <init-param>
             <param-name>requestProcessorAttribute</param-name>
             <param-value>unique_identifier_b </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
  4. Ajoutez les mappages de servlet dans le fichier WEB-INF/web.xml de chaque définition de servlet. Le chemin de servlet est ajouté à la racine de contexte de l'application web.
    <servlet-mapping>
         <servlet-name>servlet_name</servlet-name>
         <url-pattern>servlet_pattern_path</url-pattern>
    </servlet-mapping>
    Par exemple, si servlet_pattern_path a la valeur /restapi/*, toutes les demandes valides commencent à l'URL suivante :
    http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/restapi/

Résultats

Après avoir modifié le fichier WEB-INF/web.xml, l'application Web est configurée pour l'application JAX-RS.

Exemple

L'exemple suivant présente un fichier WEB-INF/web.xml qui configure un chemin de servlet pour une application JAX-RS. Le chemin de servlet qui est défini dans le fichier web.xml est ajouté à l'URL de base.

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


<servlet>
     <servlet-name>RestApplication1</servlet-name>
     <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-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>
     <load-on-startup>1</load-on-startup>
</servlet>

<servlet>
     <servlet-name>OtherRestApplicationServlet</servlet-name>
     <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-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> 
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
     <servlet-name> RestApplication1</servlet-name>
     <url-pattern>/rest/api/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
     <servlet-name>OtherRestApplicationServlet /servlet-name>
     <url-pattern>/other/*</url-pattern>
</servlet-mapping>
</web-app>

Que faire ensuite

Assemblez l'application Web.


Icône indiquant le type de rubrique Rubrique de tâche



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_configwebxml
Nom du fichier : twbs_jaxrs_configwebxml.html