Configurando o Arquivo web.xml para Filtros JAX-RS
O arquivo web.xml contém informações sobre a estrutura e dependências externas de componentes da Web no módulo e descreve como os componentes são usados no tempo de execução. Para ativar o contêiner da Web para executar aplicativos Java™ API for RESTful Web Services (JAX-RS), é possível configurar o arquivo web.xml para definir filtros que indicam as possíveis URLs nas quais o filtro pode ser chamado.
Sobre Esta Tarefa
É possível configurar o arquivo web.xml para o seu aplicativo da Web para ativar o código do aplicativo JAX-RS. É possível especificar um filtro JAX-RS específico da IBM® para usar para executar o seu código JAX-RS. O arquivo web.xml fornece informações de configuração e implementação para os componentes da Web que compõem um aplicativo da Web. Consulte a configuração do arquivo web.xml para o JAX-RS para saber mais sobre esse arquivo descritor de implementação.
Ao usar os servlets, qualquer caminho de servlet definido no arquivo web.xml é anexado à URL de base. Os filtros não anexam um caminho na URL de base de recurso. Em vez disso, os mapeamentos de URL de filtro indicam as URLs possíveis nas quais o filtro pode ser chamado. Por exemplo, se um recurso raiz possuir um valor @javax.ws.rs.Path de myresource, a URL final do recurso será http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/myresource. O padrão de mapeamento de URL para o filtro deve corresponder myresource para o recurso raiz a ser atendido corretamente. Para esse exemplo, é possível usar /* ou /myresource para o padrão de URL. Quando houver vários recursos no aplicativo, o padrão de URL para o filtro deverá corresponder a todos os recursos. O padrão /* é um valor comum para o filtro.
Se uma URL de pedido recebido não corresponder a nenhum recurso JAX-RS no aplicativo JAX-RS, o pedido será transmitido para o restante da cadeia de filtros. Dependendo do aplicativo, você pode desejar usar o comportamento do filtro para que os pedidos sejam atendidos pelo aplicativo JAX-RS, ou se não houver nenhum recurso JAX-RS disponível, o pedido pode prosseguir para um artefato de contêiner da Web subjacente, como um JavaServer Pages (JSP). Se o contêiner da Web não tiver nenhum artefato correspondente, então o contêiner da Web será responsável pela resposta de erro.
Procedimento
Resultados
Exemplo
O seguinte exemplo mostra um arquivo WEB-INF/web.xml que é configurado para aplicar filtros em um aplicativo JAX-RS. Esse exemplo define o filtro RestApplication1. Se uma URL de pedido recebido corresponder a um recurso no filtro RestApplication1, a resposta será gerada a partir do filtro RestApplication1. Se a URL de pedido recebido não corresponder a um recurso no filtro RestApplication1, mas corresponder a um recurso em OtherRestApplicationFilter, a resposta será gerada a partir do filtro OtherRestApplicationFilter. Se a URL recebida não corresponder ao filtro, então o pedido pode ser atendido de outro artefato do contêiner da Web, como um 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>
O que Fazer Depois
Monte o aplicativo da Web.