Configuración del archivo web.xml para servlets de JAX-RS

El archivo web.xml contiene información sobre la estructura y las dependencias externas de los componentes web en el módulo y describe cómo se utilizan los componentes en tiempo de ejecución. Para permitir que el contenedor web pueda ejecutar Java™ API for RESTful Web Services (JAX-RS) aplicaciones, puede configurar el archivo web.xml para que apunte directamente al servlet IBM® JAX-RS. Cuando se utilizan servlets, puede definir una vía de acceso del servlet en el archivo web.xml que se añadirá al URL base.

Acerca de esta tarea

Puede modificar el archivo web.xml para que la aplicación web habilite el código de aplicación de JAX-RS. Puede especificar que se utilice un servlet JAX-RS específico de IBM para ejecutar el código JAX-RS. El archivo web.xml proporciona información sobre configuración y despliegue de los componentes web que componen una aplicación web. Lea la información sobre la configuración del archivo web.xml para obtener una idea más clara sobre este archivo descriptor de despliegue.

Cuando se utilizan servlets, cualquier vía de acceso de servlet que está definida en el archivo web.xml se añadirá al URL base. Por ejemplo, si un recurso root tiene un valor @javax.ws.rs.Path de mirecurso y una vía de acceso de servlet víaaccesomiservlet, el URL final del recurso seráhttp://<nombre_host>:<puerto_contenedor_web>/<raíz_contexto_de_aplicación_web>//myservletpath/myresource.

Procedimiento

  1. Abra el archivo WEB-INF/web.xml.
  2. Añada la siguiente definición del servlet en el archivo WEB-INF/web.xml. En el siguiente servlet, debe sustituir el nombre_servlet_exclusivo por el nombre de su servlet exclusivo. Además, sustituya la variable nombre_clase_Java por el nombre completo del paquete y de la clase Java de la subclase javax.ws.rs.core.Application.
    <servlet>
         <servlet-name>nombre_servlet_exclusivo</servlet-name>
         <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
         <init-param>
             <param-name>javax.ws.rs.Application</param-name>
             <param-value>nombre_clase_Java </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
  3. (opcional) Si hay varias subclases de aplicación JAX-RS necesarias en la misma aplicación web, debe incluir un parámetro de inicialización de servlet adicional, requestProcessorAttribute, en la definición del servlet que añada al archivo WEB-INF/web.xml. En el siguiente servlet, debe sustituir nombre_servlet_exclusivo por el nombre de servlet exclusivo, la variable nombre_clase_java por el nombre completo del paquete y de la clase Java de la subclase javax.ws.rs.core.Application y la variable identificador_exclusivo por un identificador exclusivo.
    <servlet>
         <servlet-name>nombre_servlet_exclusivo_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>nombre_clase_Java_a </param-value>
         </init-param>
         <init-param>
             <param-name>requestProcessorAttribute</param-name>
             <param-value>identificador_exclusivo_a</param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet>
         <servlet-name>nombre_servlet_exclusivo_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>nombre_clase_Java_b</param-value>
         </init-param>
         <init-param>
             <param-name>requestProcessorAttribute</param-name>
             <param-value>identificador_exclusivo_b </param-value>
         </init-param>
         <load-on-startup>1</load-on-startup>
    </servlet>
  4. Añada correlaciones de servlets en el archivo WEB-INF/web.xml para cada definición de servlet. La vía de acceso de servlet se añadirá en la raíz de contexto de la aplicación web.
    <servlet-mapping>
         <servlet-name>nombre_servlet</servlet-name>
         <url-pattern>vía_acceso_patrón_servlet</url-pattern>
    </servlet-mapping>
    Por ejemplo, si la vía_acceso_patrón_servlet es /restapi/*, todas las solicitudes válidas se inician en el URL siguiente:
    http://<nombre_host>:<puerto_contenedor_web>/<raíz_contexto_de_aplicación_web>/restapi/

Resultados

Después de editar el archivo WEB-INF/web.xml, la aplicación web estará configurada para la aplicación de JAX-RS.

Ejemplo

En el ejemplo siguiente se ilustra un archivo WEB-INF/web.xml que configura una vía de acceso de servlet para una aplicación de JAX-RS. La vía de acceso del servlet que se define en el archivo web.xml se añade al URL 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>

Qué hacer a continuación

Ensamble la aplicación web.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_configwebxml
File name: twbs_jaxrs_configwebxml.html