.war vs .ear archivo

¿Cuál es la diferencia entre un archivo .war y .ear?

Desde GeekInterview :

En la aplicación J2EE, los módulos se empaquetan como EAR, JAR y WAR en función de su funcionalidad

JAR: los módulos EJB que contienen enterprise java beans (archivos de clase) y el descriptor de despliegue EJB se empaquetan como archivos JAR con extensión .jar

WAR: los módulos web que contienen archivos de clase Servlet, archivos JSP, archivos compatibles, archivos GIF y HTML están empaquetados como archivo JAR con extensión .war (archivo web)

EAR: Todos los archivos anteriores (.jar y .war) se empaquetan como archivo JAR con extensión .ear (Enterprise Archive) y se implementan en Application Server.

A WAR (Web Archive) es un módulo que se carga en un contenedor web de un Java Application Server . Un servidor de aplicaciones Java tiene dos contenedores (entornos de tiempo de ejecución): uno es un contenedor web y el otro es un contenedor EJB.

El contenedor web aloja aplicaciones web basadas en JSP o la API Servlets, diseñadas específicamente para el manejo de solicitudes web, por lo que se trata de un estilo de solicitud / respuesta de informática distribuida . Un contenedor web requiere que el módulo web se empaquete como un archivo WAR , que es un archivo JAR especial con un archivo web.xml en la carpeta WEB-INF .

Un contenedor EJB aloja enterprise java beans basados ​​en la API EJB diseñada para proporcionar una funcionalidad empresarial extendida, como transacciones declarativas, seguridad de nivel de método declarativo y soporte multiprotocolo, por lo que es más un estilo RPC de informática distribuida . Los contenedores EJB requieren que los módulos EJB se empaqueten como archivos JAR ; estos tienen un archivo ejb-jar.xml en la carpeta META-INF .

Las aplicaciones empresariales pueden consistir en uno o más módulos que pueden ser módulos web (empaquetados como un archivo WAR), módulos EJB (empaquetados como un archivo JAR) o ambos. Las aplicaciones empresariales se empaquetan como archivos EAR ; estos son archivos JAR especiales que contienen un archivo application.xml en la carpeta META-INF .

Básicamente, los archivos EAR son un superconjunto que contiene archivos WAR y archivos JAR . Los servidores de aplicaciones Java permiten la implementación de módulos web independientes en un archivo WAR, aunque internamente, crean archivos EAR como un contenedor de archivos WAR. Los contenedores web independientes como Tomcat y Jetty no son compatibles con los archivos EAR; estos no son servidores de aplicaciones de pleno derecho. Las aplicaciones web en estos contenedores deben desplegarse solo como archivos WAR.

En los servidores de aplicaciones, los archivos EAR contienen configuraciones tales como mapeo de roles de seguridad de aplicaciones, mapeo de referencia EJB y mapeo de URL raíz de contexto de módulos web.

Además de los módulos web y los módulos EJB, los archivos EAR también pueden contener módulos de conector empaquetados como archivos RAR y módulos de cliente empaquetados como archivos JAR.

guerra – archivo web. Se utiliza para implementar aplicaciones web de acuerdo con el estándar de servlet. Es un archivo jar que contiene un directorio especial llamado WEB-INF y varios archivos y directorios dentro de él (web.xml, lib, classes) así como todo el HTML, JSP, imágenes, CSS, JavaScript y otros recursos de la aplicación web.

oreja – archivo de la empresa. Se utiliza para implementar aplicaciones empresariales que contienen EJB, aplicaciones web y bibliotecas de terceros. También es un archivo jar, tiene un directorio especial llamado APP-INF que contiene el archivo application.xml y contiene archivos jar y war.

Los archivos WAR (archivo web) contienen archivos de clases de servlets, JSP (páginas de servlets de Java), HTML y archivos gráficos, y otros archivos de soporte.

Los archivos EAR (archivo empresarial) contienen los archivos WAR junto con los archivos JAR que contienen el código.

Puede haber otras cosas en esos archivos, pero básicamente se refieren a lo que parecen significar: WAR para cosas de tipo web, EAR para cosas de tipo empresarial (WAR, código, conectores, etc.).

Consulte: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html

tar (archivos de cinta): el formato utilizado es un archivo escrito en unidades seriales de fileName, fileSize, fileData – sin compresión. puede ser enorme

Jar (archivo java) – técnicas de compresión utilizadas – generalmente contiene información de Java como clase / archivos java. Pero puede contener cualquier archivo y estructura de directorios

war (archivos de aplicaciones web): archivos similares a jar solo tienen una estructura de directorios específica según las especificaciones de JSP / Servlet para fines de implementación

ear (archivos empresariales): similares a los archivos jar. tener una estructura de directorios que cumpla con los requisitos J2EE para que pueda implementarse en los servidores de aplicaciones J2EE. – puede contener múltiples archivos JAR y WAR

Los archivos ear proporcionan más opciones para configurar la interacción con el servidor de aplicaciones.

Por ejemplo: si la versión de hibernación del servidor de aplicaciones es anterior a la proporcionada por sus dependencias, puede agregar lo siguiente a ear-deployer-jboss-beans.xml para que JBOSS aísle los cargadores de clases y evite conflictos:

  true  

o a src / main / application / META-INF / jboss-app.xml:

 < ?xml version="1.0"?>   loader=nameofyourear.ear java2ParentDelegation=false   

Esto asegurará que no haya conflicto de cargador de clases entre su aplicación y el servidor de la aplicación.

Normalmente, el mecanismo del cargador de clases funciona así:

Cuando se presenta una solicitud de carga de clases a un cargador de clases, primero se le pide al cargador de clases padre que cumpla con la solicitud. El padre, a su vez, le pregunta a su padre por la clase hasta que la solicitud llegue al tope de la jerarquía. Si el cargador de clases en la parte superior de la jerarquía no puede cumplir con la solicitud, entonces el cargador de clases hijo que lo llamó es responsable de cargar la clase.

Al aislar los cargadores de clases, su cargador de clases ear no buscará en el padre (= JBoss / otro cargador de clases AS). Hasta donde sé, esto no es posible con los archivos war.

J2EE define tres tipos de archivos:

  1. Archivos Java (JAR) Un archivo JAR encapsula una o más clases Java, un manifiesto y un descriptor. Los archivos JAR son el nivel más bajo de archivo. Los archivos JAR se usan en J2EE para empaquetar EJB y aplicaciones Java del lado del cliente.

  2. Los archivos WAR de Web Archives (WAR) son similares a los archivos JAR, excepto que son específicamente para aplicaciones web creadas a partir de servlets, JSP y clases de soporte.

  3. Enterprise Archives (EAR) “Un archivo EAR contiene todos los componentes que componen una aplicación J2EE en particular.

Archivos JAR

Un archivo JAR (abreviado de Java Archive) permite la combinación de varios archivos en uno solo. Archivos con el ‘.jar’; Los desarrolladores de software utilizan la extensión para distribuir clases Java y varios metadatos. También contienen bibliotecas y archivos de recursos, así como archivos accesorios (como archivos de propiedades).

Los usuarios pueden extraer y crear archivos JAR con el comando ‘.jar’ de Java Development Kit (JDK). Las herramientas ZIP también pueden ser utilizadas.

Los archivos JAR tienen archivos de manifiesto opcionales. Las entradas dentro del archivo de manifiesto prescriben el uso del archivo JAR. Una especificación de clase ‘principal’ para una clase de archivo denota el archivo como un progtwig separado o ‘autónomo’.

Archivos WAR

Los archivos WAR (o archivo de aplicación web) pueden comprender archivos XML (Lenguaje de marcado extensible), clases de Java, así como páginas de servidor de Java para fines de aplicación de Internet. También se emplea para marcar bibliotecas y páginas web que componen una aplicación web. Los archivos con la extensión ‘.war’ contienen la aplicación web para usar con contenedores de servidor o JSP (página de servidor Java). Tiene JSP, HTML (Lenguaje de marcado de hipertexto), JavaScript y varios archivos para crear las aplicaciones web antes mencionadas.

Un archivo WAR está estructurado como tal para permitir directorios y archivos especiales. También puede tener una firma digital (muy similar a la de un archivo JAR) para mostrar la veracidad del código.

Archivos EAR

Un archivo EAR (Enterprise Archive) combina los archivos JAR y WAR en un solo archivo. Estos archivos con la extensión ‘.ear’ tienen un directorio para metadatos. Los módulos se empaquetan en el archivo para un funcionamiento uniforme y simultáneo de los diferentes módulos dentro de un servidor de aplicaciones.

El archivo EAR también tiene descriptores de implementación (que son archivos XML) que dictan de manera efectiva la implementación de los diferentes módulos.

enter image description here