Configuración del archivo web.xml para filtros de JAX-RS
El archivo web.xml contiene información sobre la estructura y dependencias externas de los componentes web en el módulo, y describe la forma en que los componentes se utilizan en tiempo de ejecución. Para permitir que el contenedor web ejecute la API Java™ para aplicaciones RESTful Web Services (JAX-RS), puede configurar el archivo web.xml para definir los filtros que indican los posibles URL en los que se puede invocar el filtro.
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 filtro JAX-RS específico de IBM® para ejecutar el código JAX-RS. El archivo web.xml proporciona información de configuración y de despliegue para los componentes web que configuran 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 definida en el archivo web.xml se añade al URL base. Los filtros no añaden ninguna vía de acceso al URL base de recursos. En su lugar, las correlaciones URL de filtros indican los posibles URL en los que se puede invocar al filtro. Por ejemplo, si un recurso root tiene un valor @javax.ws.rs.Path de mirecurso, el URL final del recurso será http://<nombre_host>:<puerto_contenedor_web>/<raíz_contexto_de_aplicación_web>/mirecurso. El patrón de correlación URL para el filtro debe hacer coincidir mirecurso con el recurso root para que funcione correctamente.correctamente. Para este ejemplo, puede utilizar /* o /myresource para el patrón URL. Si hay varios recursos en la aplicación, el patrón URL para el filtro debe coincidir con todos los recursos. El patrón /* es un valor común para el filtro.
Si el URL de la solicitud entrante no coincide con ningún recurso JAX-RS de la aplicación de JAX-RS, dicha solicitud pasará al resto de la cadena de filtros. En función de la aplicación, es posible que desee utilizar el comportamiento de filtro de modo que la aplicación de JAX-RS atienda a las solicitudes o si no hay ningún recurso JAX-RS disponible, la solicitud puede continuar en un artefacto de contenedor web subyacente, como un JavaServer Pages (JSP). Si el contenedor web no tiene ningún artefacto coincidente, dicho contenedor web será responsable de la respuesta de error.
Procedimiento
Resultados
Ejemplo
En el ejemplo siguiente se muestra un archivo WEB-INF/web.xml que se ha configurado para aplicar filtros a una aplicación de JAX-RS. Este ejemplo define el filtro RestApplication1. Si un URL de solicitud entrante coincide con un recurso del filtro RestApplication1, la respuesta se genera a partir del filtro RestApplication1. Si el URL de solicitud entrante no coincide con ningún recurso del filtro RestApplication1 pero coincide con un recurso de OtherRestApplicationFilter, la respuesta se generará a partir del filtro OtherRestApplicationFilter. Si el URL entrante no coincide con ningún filtro, la solicitud puede atenderse desde otro artefacto de contenedor web como, por ejemplo un 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>
Qué hacer a continuación
Ensamble la aplicación web.