Personalizar archivos web.xml para archivos WAR (Web Archive)

Puede personalizar el archivo web.xml que utiliza el entorno de trabajo en el archivo WAR que crea el entorno de trabajo para el servicio web. Si lo desea, puede cambiar web.xml añadiendo algunos filtros para las solicitudes que llegan al servicio web si desea desplegar estos filtros junto con el servicio. También puede añadir servlets adicionales o códigos de correlación de servlets.

Acerca de esta tarea

Aunque existe un archivo web.xml en el proyecto para el servicio web, el archivo web.xml no se edita directamente. En su lugar, cree una plantilla que contenga los cambios que desea que el entorno de trabajo incluya en el archivo web.xml cuando el entorno de trabajo vuelva a generar el archivo WAR.

Cuando utiliza el asistente Compilar y desplegar para generar un archivo WAR, el entorno de trabajo suprime todos los archivos del proyecto y vuelve a crearlos. Por lo tanto, si edita el archivo web.xml directamente, puede perder los cambios cuando utiliza el asistente Compilar y desplegar.

Cuando utiliza una plantilla que contiene las ediciones que desea realizar en el archivo web.xml, el entorno de trabajo fusiona el contenido de la plantilla con el archivo web.xml de contenido que crea.

Procedimiento

Para personalizar un archivo web.xml:

  1. Abra la vista Navegador, si todavía no está abierta.
    1. Seleccione Ventana > Mostrar vista > Otros.
    2. En la ventana Mostrar ventana, seleccione General > Navegador.
  2. Pulse con el botón derecho del ratón sobre la carpeta .metadata del proyecto y seleccione Nuevo > Otros. En el asistente Nuevo, expanda General y seleccione Carpeta. Pulse Siguiente. En la página Nueva carpeta, escriba templates como nombre. Pulse Finalizar.
  3. Pulse con el botón derecho del ratón sobre la carpeta templates y seleccione Nuevo > Otros. En el asistente Nuevo, expanda General y seleccione Carpeta. Pulse Siguiente. En la página Nueva carpeta, escriba j2ee como nombre. Pulse Finalizar.
  4. Pulse con el botón derecho del ratón sobre la carpeta j2ee y seleccione Nuevo > Otros. En el asistente Nuevo, expanda General y seleccione Archivo. Pulse Siguiente. En la página Nuevo archivo, escriba web_template.xml como nombre. Pulse Finalizar.
  5. En el editor del nuevo archivo, seleccione la pestaña Fuente. Copie y pegue los códigos siguientes en el editor:
    <?xml version="1.0" encoding="UTF-8" ?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5">
    
    </web-app>
  6. Añada el contenido que desea que incorpore el entorno de trabajo en el archivo web.xml que genera para el archivo WAR del servicio web. Puede añadir contenido en cualquiera de los códigos definidos por el esquema de la especificación Java Servlet 2.5.
    A continuación se proporciona una plantilla de ejemplo:
    <?xml version="1.0" encoding="UTF-8" ?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <filter>
        <filter-name>DebugFilter-In</filter-name>
        <description>Print XMl request, XML response and current timestamps</description>
        <filter-class>com.vzb.varwebservices.filter.DebugFilter</filter-class>
        <init-param>
           <param-name>input</param-name>
           <param-value>true</param-value>
        </init-param>
    </filter>
    
    <servlet>
        <servlet-name>testServlet1</servlet-name>
        <servlet-class>com.ibm.datatools.dsws.rt.testclient.testServlet1</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testServlet1</servlet-name>
        <url-pattern>/TestClient/testServlet1</url-pattern>
    </servlet-mapping>
     
    <servlet>
        <servlet-name>testServlet2</servlet-name>
        <servlet-class>com.ibm.datatools.dsws.rt.testclient.testServlet2</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testServlet2</servlet-name>
        <url-pattern>/TestClient/testServlet2</url-pattern>
    </servlet-mapping>
    </web-app>
  7. Guarde la plantilla. La próxima vez que compile el proyecto, el entorno de trabajo inserta el contenido del archivo de plantilla en el archivo web.xml que se incluye en el archivo WAR que acaba de generar.

Comentarios