stringtranslate.com

WAR (formato de archivo)

En ingeniería de software , un archivo WAR ( Web Application Resource [ 1 ] o Web Application Archive [2] ) es un archivo utilizado para distribuir una colección de archivos JAR , JavaServer Pages , Java Servlets , clases Java , archivos XML , bibliotecas de etiquetas, páginas web estáticas ( HTML y archivos relacionados) y otros recursos que juntos constituyen una aplicación web .

Contenido y estructura

Un archivo WAR puede firmarse digitalmente de la misma manera que un archivo JAR para permitir que otros determinen de dónde proviene el código fuente.

Hay archivos y directorios especiales dentro de un archivo WAR:

Ventajas de los archivos WAR

Suponiendo que los entornos de producción no promuevan una solución sin realizar pruebas suficientes antes de la implementación, un archivo WAR tiene una clara ventaja cuando se utilizan archivos de propiedades para identificar variables específicas del entorno. Por ejemplo, un servidor LDAP en un entorno de prueba puede ser algo como ldaps://testauth.example.com:636. El servidor LDAP en un entorno de producción es ldaps://auth.example.com:636. Un archivo de propiedades externo definiría el vínculo con algo como:

PÁGINA_ENLACE=ldaps://testauth.ejemplo.com:636

El código fuente lee el archivo de propiedades para determinar el servidor LDAP de destino. De esta manera, los desarrolladores pueden estar seguros de que el archivo WAR probado y verificado es exactamente el mismo que el que se está promocionando para producción.

Desventajas de los archivos WAR

Algunos [¿ quiénes? ] consideran que la implementación web mediante archivos WAR es desventajosa cuando se requieren cambios menores en el código fuente para entornos dinámicos. Cada cambio en el código fuente debe volver a empaquetarse e implementarse en el desarrollo. [3] Esto no requiere detener el servidor web si está configurado para la implementación en tiempo de ejecución. [4]

Ejemplo

El siguiente archivo web.xml de ejemplo demuestra la declaración y asociación de un servlet :

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app  PUBLIC "-//Sun Microsystems, Inc.//Aplicación web DTD 2.2//EN"  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"><aplicación web> <servlet> <nombre-servlet> HelloServlet </nombre-servlet> <clase-servlet> mipaquete.HelloServlet </clase-servlet> </servlet>     <servlet-mapping> <servlet-name> HelloServlet </servlet-name> <url-pattern> /HelloServlet </url-pattern> </servlet-mapping>    <resource-ref> <description> Referencia de recurso a una fábrica para instancias de javax.mail.Session que pueden usarse para enviar mensajes de correo electrónico , preconfiguradas para conectarse al servidor SMTP apropiado . </description> <res-ref-name> mail/ Session </res-ref-name> <res-type> javax.mail.Session </res-type> <res-auth> Contenedor </res-auth> </resource-ref> </web-app>                               

El /WEB-INF/classesdirectorio se encuentra en la ruta de clases de ClassLoader . (La ruta de clases consiste en una lista de ubicaciones desde las cuales la JVM puede cargar y ejecutar archivos). El directorio contiene las clases asociadas con la propia aplicación web..class/WEB-INF/classes

Cualquier archivo JAR colocado en el /WEB-INF/libdirectorio también se colocará en la ruta de clase de ClassLoader.

Véase también

Referencias

  1. ^ Crossley, Allistair. "Apache Tomcat 8 (8.0.44) - Implementación de aplicaciones web Tomcat". Apache Software Foundation . Consultado el 27 de junio de 2017 .
  2. ^ Hunter, Jason (15 de octubre de 1999). "¿Qué hay de nuevo en Java Servlet API 2.2?". JavaWorld . Consultado el 8 de noviembre de 2020 .
  3. ^ "Ciclo de vida de la aplicación web". Tutorial de Java EE 6 . Oracle .
  4. ^ "Implementación en un servidor Tomcat en ejecución". Apache Software Foundation .

Enlaces externos