Configurando o Arquivo web.xml para Servlets 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 permitir que o contêiner da web execute aplicativos Java™ API for RESTful Web Services (JAX-RS), é possível configurar o arquivo web.xml para apontar diretamente para o servlet IBM® JAX-RS. Ao usar servlets, é possível definir um caminho de servlet no arquivo web.xml que é anexado à URL base.

Sobre Esta Tarefa

É possível configurar o arquivo web.xml para seu aplicativo da web para ativar o código do aplicativo JAX-RS. É possível especificar um servlet 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 de implementação para os componentes da Web que compreendem um aplicativo da Web. Leia sobre como configurar o arquivo web.xml para JAX-RS para saber mais sobre este arquivo descritor de implementação.

Ao usar servlets, qualquer caminho de servlet definido no web.xml é anexado à URL base. Por exemplo, se um recurso raiz possuir um valor @javax.ws.rs.Path de myresource e um caminho de servlet de myservletpath, a URL final do recurso será http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>//myservletpath/myresource.

Procedimento

  1. Abra o arquivo WEB-INF/web.xml.
  2. Inclua a definição de servlet a seguir no arquivo WEB-INF/web.xml. No servlet a seguir, é necessário substituir unique_servlet_name pelo nome de servlet exclusivo. Substitua também a variável Java_class_name pelo pacote e nome de classe Java completo da subclasse 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. (opcional) Se houver diversas subclasses do aplicativo JAX-RS necessárias no mesmo aplicativo da web, você deverá incluir um parâmetro de inicialização de servlet adicional, requestProcessorAttribute, na definição do servlet que você incluir no arquivo WEB-INF/web.xml. No seguinte servlet, é necessário substituir unique_servlet_name pelo nome de servlet exclusivo, a variável Java_class_name pelo pacote e nome de classe Java completo da subclasse javax.ws.rs.core.Application e a variável unique_identifier por um identificador exclusivo.
    <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. Inclua mapeamentos do servlet no arquivo WEB-INF/web.xml para cada definição de servlet. O caminho do servlet é anexado na raiz de contexto do aplicativo da Web.
    <servlet-mapping>
         <servlet-name>servlet_name</servlet-name>
         <url-pattern>servlet_pattern_path</url-pattern>
    </servlet-mapping>
    Por exemplo, se servlet_pattern_path for /restapi/*, todos os pedidos válidos iniciam na seguinte URL:
    http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/restapi/

Resultados

Após editar o arquivo WEB-INF/web.xml, o aplicativo da web é configurado para o aplicativo JAX-RS.

Exemplo

O exemplo a seguir ilustra um arquivo WEB-INF/web.xml que configura um caminho de servlet para um aplicativo JAX-RS. O caminho do servlet que é definido no arquivo web.xml é anexado à 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>

O que Fazer Depois

Monte o aplicativo da Web.


Ícone que indica o tipo de tópico Tópico de Tarefa



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_configwebxml
Nome do arquivo: twbs_jaxrs_configwebxml.html