Fichier .war vs .ear

Quelle est la différence entre un fichier .war et .ear?

De GeekInterview :

Dans l’application J2EE, les modules sont regroupés en tant que EAR, JAR et WAR en fonction de leurs fonctionnalités.

JAR: les modules EJB qui contiennent des beans Java d’entreprise (fichiers de classe) et un descripteur de déploiement EJB sont empaquetés en tant que fichiers JAR avec extension .jar

WAR: les modules Web contenant des fichiers de classe Servlet, des fichiers JSP, des fichiers de support, des fichiers GIF et HTML sont empaquetés en tant que fichiers JAR avec l’extension .war (archive Web)

EAR: tous les fichiers ci-dessus (.jar et .war) sont regroupés en tant que fichiers JAR avec une extension .ear (archive d’entreprise) et sont déployés dans Application Server.

Un fichier WAR (Web Archive) est un module qui est chargé dans un conteneur Web d’un serveur d’applications Java . Un serveur d’applications Java possède deux conteneurs (environnements d’exécution): l’un est un conteneur Web et l’autre est un conteneur EJB.

Le conteneur Web héberge des applications Web basées sur JSP ou sur l’API Servlets – conçues spécifiquement pour la gestion des requêtes Web – donc davantage dans un style demande / réponse de calcul dissortingbué . Un conteneur Web nécessite que le module Web soit empaqueté en tant que fichier WAR , c’est-à-dire un fichier JAR spécial contenant un fichier web.xml dans le dossier WEB-INF .

Un conteneur EJB héberge des beans Java Enterprise basés sur l’API EJB, conçus pour fournir des fonctionnalités professionnelles étendues telles que les transactions déclaratives, la sécurité au niveau de la méthode déclarative et la prise en charge multiprotocole. Les conteneurs EJB nécessitent que les modules EJB soient empaquetés en tant que fichiers JAR . Ils contiennent un fichier ejb-jar.xml dans le dossier META-INF .

Les applications d’entreprise peuvent être constituées d’un ou de plusieurs modules pouvant être des modules Web (fournis sous forme de fichier WAR), des modules EJB (intégrés dans un fichier JAR) ou les deux. Les applications d’entreprise sont regroupées sous forme de fichiers EAR . Il s’agit de fichiers JAR spéciaux contenant un fichier application.xml dans le dossier META-INF .

Fondamentalement, les fichiers EAR sont un sur-ensemble contenant des fichiers WAR et des fichiers JAR . Les serveurs d’applications Java permettent le déploiement de modules Web autonomes dans un fichier WAR, bien qu’en interne, ils créent des fichiers EAR en tant que wrapper autour des fichiers WAR. Les conteneurs Web autonomes tels que Tomcat et Jetty ne prennent pas en charge les fichiers EAR – ce ne sont pas des serveurs d’applications à part entière. Les applications Web de ces conteneurs doivent être déployées en tant que fichiers WAR uniquement.

Dans les serveurs d’applications, les fichiers EAR contiennent des configurations telles que le mappage des rôles de sécurité d’application, le mappage de référence EJB et le mappage d’URL de racine de contexte des modules Web.

Outre les modules Web et les modules EJB, les fichiers EAR peuvent également contenir des modules de connecteur empaquetés en tant que fichiers RAR et modules Client en tant que fichiers JAR.

guerre – archive web. Il est utilisé pour déployer des applications Web conformément à la norme de servlet. C’est un fichier jar contenant un répertoire spécial appelé WEB-INF ainsi que plusieurs fichiers et répertoires (web.xml, lib, classes) ainsi que tous les fichiers HTML, JSP, images, CSS, JavaScript et autres de l’application Web.

oreille – archives d’entreprise. Il est utilisé pour déployer des applications d’entreprise contenant des EJB, des applications Web et des bibliothèques tierces. C’est aussi un fichier jar, il a un répertoire spécial appelé APP-INF qui contient le fichier application.xml et contient des fichiers jar et war.

Les fichiers WAR (archives Web) contiennent des fichiers de classes de servlets, des pages JSP (pages de servlet Java), des fichiers HTML et graphiques, ainsi que d’autres fichiers de support.

Les fichiers EAR (archive d’entreprise) contiennent les fichiers WAR ainsi que les fichiers JAR contenant du code.

Il y a peut-être d’autres choses dans ces fichiers, mais elles sont essentiellement destinées à ce qu’elles semblent vouloir dire: WAR pour les fichiers de type Web, EAR pour les fichiers de type entreprise (WARs, code, connecteurs et autres).

Se référer à: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html

tar (archives de bandes) – Le format utilisé est un fichier écrit en unités série de FileName, FileSize, FileData – sans compression. peut être énorme

Jar (archive Java) – techniques de compression utilisées – contient généralement des informations Java comme les fichiers class / java. Mais peut contenir des fichiers et des répertoires

war (archives d’applications Web) – comme les fichiers jar ont une structure de répertoires spécifique selon les spécifications JSP / Servlet à des fins de déploiement

ear (archives d’entreprise) – similaire à des fichiers jar. avoir une structure de répertoires conforme aux exigences J2EE pour pouvoir être déployé sur les serveurs d’applications J2EE. – Peut contenir plusieurs fichiers JAR et WAR

Les fichiers d’oreille offrent davantage d’options pour configurer l’interaction avec le serveur d’applications.

Par exemple: si la version hibernate du serveur d’applications est plus ancienne que celle fournie par vos dépendances, vous pouvez append ce qui suit à ear-deployer-jboss-beans.xml pour JBOSS afin d’isoler les chargeurs de classes et d’éviter les conflits:

  true  

ou à src / main / application / META-INF / jboss-app.xml:

    loader=nameofyourear.ear java2ParentDelegation=false   

Cela garantira qu’il n’y a pas de conflit de classloader entre votre application et le serveur d’applications.

Normalement, le mécanisme classloader fonctionne comme ceci:

Lorsqu’une demande de chargement de classe est présentée à un chargeur de classe, elle demande d’abord à son chargeur de classe parent de répondre à la demande. Le parent, à son tour, demande à son parent la classe jusqu’à ce que la requête atteigne le sumt de la hiérarchie. Si le chargeur de classes situé en haut de la hiérarchie ne peut pas répondre à la demande, le chargeur de classes enfant qui l’a appelé est responsable du chargement de la classe.

En isolant les chargeurs de classe, votre chargeur de classe d’oreille ne cherchera pas dans le parent (= JBoss / autre classe AS). Autant que je sache, ce n’est pas possible avec les fichiers de guerre.

J2EE définit trois types d’archives:

  1. Archives Java (JAR) Un fichier JAR encapsule une ou plusieurs classes Java, un manifeste et un descripteur. Les fichiers JAR constituent le niveau d’archivage le plus bas. Les fichiers JAR sont utilisés dans J2EE pour empaqueter les EJB et les applications Java côté client.

  2. Les fichiers WAR des archives Web (WAR) sont similaires aux fichiers JAR, sauf qu’ils sont spécifiquement destinés aux applications Web créées à partir de Servlets, de JSP et de classes de support.

  3. Enterprise Archives (EAR) »Un fichier EAR contient tous les composants qui constituent une application J2EE particulière.

Fichiers JAR

Un fichier JAR (Java Archive) permet de combiner plusieurs fichiers en un seul. Fichiers avec le ‘.jar’ Les développeurs utilisent des extensions pour dissortingbuer des classes Java et diverses métadonnées. Ils contiennent également des bibliothèques et des fichiers de ressources, ainsi que des fichiers accessoires (tels que des fichiers de propriétés).

Les utilisateurs peuvent extraire et créer des fichiers JAR avec la commande ‘.jar’ de Java Development Kit (JDK). Les outils ZIP peuvent également être utilisés.

Les fichiers JAR ont des fichiers manifest facultatifs. Les entrées dans le fichier manifeste prescrivent l’utilisation du fichier JAR. Une spécification de classe «principale» pour une classe de fichiers indique le fichier en tant que programme indépendant ou «autonome».

Fichiers WAR

Un fichier WAR (ou archive d’application Web) peut comprendre des fichiers XML (Extensible Markup Language), des classes Java, ainsi que des pages Java Server à des fins d’application Internet. Il est également utilisé pour marquer les bibliothèques et les pages Web qui constituent une application Web. Les fichiers avec l’extension ‘.war’ contiennent l’application Web à utiliser avec des conteneurs de serveur ou JSP (Java Server Page). Il a JSP, HTML (Hypertext Markup Language), JavaScript et divers fichiers pour créer les applications Web susmentionnées.

Un fichier WAR est structuré de manière à permettre la création de répertoires et de fichiers spéciaux. Il peut également avoir une signature numérique (un peu comme celle d’un fichier JAR) pour montrer la véracité du code.

Fichiers EAR

Un fichier EAR (Enterprise Archive) fusionne les fichiers JAR et WAR en une seule archive. Ces fichiers avec l’extension ‘.ear’ ont un répertoire pour les métadonnées. Les modules sont intégrés dans des archives pour un fonctionnement fluide et simultané des différents modules dans un serveur d’applications.

Le fichier EAR comporte également des descripteurs de déploiement (des fichiers XML) qui dictent efficacement le déploiement des différents modules.

entrer la description de l'image ici