Quelle est la différence entre un fichier .war et .ear?
Quelle est la différence entre un fichier .war et .ear?
Réponses:
De GeekInterview :
Dans l'application J2EE, les modules sont conditionnés en 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 regroupés sous forme de fichiers JAR avec l'extension .jar
WAR: les modules Web qui contiennent des fichiers de classe Servlet, des fichiers JSP, des fichiers de prise en charge, des fichiers GIF et HTML sont fournis sous forme de fichier JAR avec l'extension .war (archive Web)
EAR: tous les fichiers ci-dessus (.jar et .war) sont empaquetés en tant que fichier JAR avec l'extension .ear (archive d'entreprise) et déployés dans Application Server.
Un 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 l'API Servlets - conçues spécifiquement pour le traitement des demandes Web - donc plus d'un style de demande / réponse de l'informatique distribuée . Un conteneur Web nécessite que le module Web soit conditionné en tant que fichier WAR - c'est-à-dire un fichier JAR spécial avec un web.xml
fichier dans le WEB-INF
dossier.
Un conteneur EJB héberge des beans Java d'entreprise basés sur l'API EJB conçue pour fournir des fonctionnalités métier étendues telles que les transactions déclaratives, la sécurité au niveau des méthodes déclaratives et la prise en charge multiprotocole - donc plus d'un style RPC de l'informatique distribuée . Les conteneurs EJB nécessitent que les modules EJB soient empaquetés sous forme de fichiers JAR - ceux-ci ont un ejb-jar.xml
fichier dans le META-INF
dossier.
Les applications d'entreprise peuvent consister en un ou plusieurs modules qui peuvent être des modules Web (empaquetés sous forme de fichier WAR), des modules EJB (empaquetés sous forme de 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 application.xml
fichier dans le META-INF
dossier.
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 comme enveloppe 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 dans 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 de rôle de sécurité d'application, le mappage de référence EJB et le mappage d'URL racine de contexte des modules Web.
Outre les modules Web et les modules EJB, les fichiers EAR peuvent également contenir des modules de connecteur conditionnés sous forme de fichiers RAR et des modules clients conditionnés sous forme de fichiers JAR.
.jar
, .war
et les .ear
fichiers sont des archives zip simples, ainsi pu être ouvert par tout programme qui peut gérer les fichiers .zip ordinaires.
guerre - archives 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 et plusieurs fichiers et répertoires à l'intérieur (web.xml, lib, classes) ainsi que tous les HTML, JSP, images, CSS, JavaScript et autres ressources de l'application web
ear - archives d'entreprise. Il est utilisé pour déployer une application 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 il contient des fichiers jar et war.
Les fichiers WAR (archives Web) contiennent des fichiers de classe de servlet, des JSP (pages de servlet Java), des fichiers HTML et graphiques et d'autres fichiers de prise en charge.
Les fichiers EAR (archive d'entreprise) contiennent les fichiers WAR ainsi que les fichiers JAR contenant le code.
Il peut y avoir d'autres choses dans ces fichiers, mais leur signification est essentiellement celle de leur sonorité: WAR pour les trucs de type Web, EAR pour les trucs de type entreprise (WARs, code, connecteurs et al).
Fichiers JAR
Un fichier JAR (abréviation de Java Archive) permet la combinaison de plusieurs fichiers en un seul. Fichiers avec le '.jar'; sont utilisées par les développeurs de logiciels pour distribuer 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). Des outils ZIP peuvent également être utilisés.
Les fichiers JAR ont des fichiers manifestes facultatifs. Les entrées dans le fichier manifeste prescrivent l'utilisation du fichier JAR. Une spécification de classe «principale» pour une classe de fichier désigne le fichier comme un programme détaché ou «autonome».
Fichiers WAR
Les fichiers WAR (ou Web Application archive) peuvent 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 composent une application Web. Les fichiers portant l'extension «.war» contiennent l'application Web à utiliser avec les conteneurs serveur ou JSP (Java Server Page). Il dispose de JSP, HTML (Hypertext Markup Language), JavaScript et divers fichiers pour créer les applications Web susmentionnées.
Un fichier WAR est structuré comme tel pour permettre des répertoires et des 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 regroupés dans une archive pour un fonctionnement fluide et simultané des différents modules au sein d'un serveur d'application.
Le fichier EAR possède également des descripteurs de déploiement (qui sont des fichiers XML) qui dictent efficacement le déploiement des différents modules.
Voir: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar (archives sur bande) - Le format utilisé est un fichier écrit en unités série de fileName, fileSize, fileData - pas de compression. peut être énorme
Jar (archive java) - techniques de compression utilisées - contient généralement des informations java comme les fichiers classe / java. Mais peut contenir n'importe quel fichier et structure de répertoire
war (archives d'applications Web) - des fichiers jar similaires similaires n'ont qu'une structure de répertoires spécifique selon les spécifications JSP / Servlet à des fins de déploiement
oreille (archives d'entreprise) - similaire à des fichiers jar. ont une structure de répertoires suivant les exigences J2EE afin de pouvoir être déployée sur des serveurs d'applications J2EE. - peut contenir plusieurs fichiers JAR et WAR
Les fichiers d'oreille offrent plus d'options pour configurer l'interaction avec le serveur d'applications.
Par exemple: si la version d'hibernation du serveur d'applications est plus ancienne que celle fournie par vos dépendances, vous pouvez ajouter ce qui suit à ear-deployer-jboss-beans.xml pour que JBOSS isole les chargeurs de classe et évite les conflits:
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
ou vers src / main / application / META-INF / jboss-app.xml:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
Cela garantira qu'il n'y a pas de conflit de chargeur de classe entre votre application et le serveur d'applications.
Normalement, le mécanisme du chargeur de classe fonctionne comme ceci:
Lorsqu'une demande de chargement de classe est présentée à un chargeur de classe, il 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 demande atteigne le sommet de la hiérarchie. Si le chargeur de classe au sommet de la hiérarchie ne peut pas répondre à la demande, le chargeur de classe 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 chargeur de classe AS). Pour autant que je sache, ce n'est pas possible avec les fichiers de guerre.
J2EE définit trois types d'archives:
Archives Java (JAR) Un fichier JAR encapsule une ou plusieurs classes Java, un manifeste et un descripteur. Les fichiers JAR sont 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.
Archives Web (WAR) Les fichiers 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.
Archives d'entreprise (EAR) »Un fichier EAR contient tous les composants qui composent une application J2EE particulière.
Pour faciliter le transport du projet, le déploiement est facilité. besoin d'être compressé en un seul fichier. Groupe JAR (archive java) de fichiers .class
WAR (archive Web) - chaque guerre représente une application Web - utilisez uniquement des technologies liées au Web telles que servlet, jsps peut être utilisé. - peut fonctionner sur le serveur Tomcat - application Web développée par des technologies liées au Web uniquement jsp servlet html js - représentation des informations uniquement pas de transactions.
EAR (archive d'entreprise) - chaque oreille représente une application d'entreprise - nous pouvons utiliser n'importe quoi de j2ee comme ejb, jms peut être utilisé avec plaisir. - peut fonctionner sur Glassfish comme un serveur et non sur un serveur Tomcat. - application d'entreprise développée par n'importe quelle technologie, de j2ee comme toutes les applications Web plus ejbs jms, etc. - effectue des transactions avec la représentation des informations. par exemple. Application bancaire, application télécom
.JAR, .WAR and .EAR
Vous pouvez également voir un didacticiel vidéo. C'est très simple ou plus compréhensible. Il expliquera quelle est la différence entre .JAR, .WAR et .EAR Tutoriel vidéo : Différence entre .JAR, .WAR et .EAR