it-swarm.com.de

.war vs .ear Datei

Was ist der Unterschied zwischen einer .war- und einer .ear-Datei?

506
ria

Von GeekInterview :

In der J2EE-Anwendung werden Module je nach Funktionalität als EAR, JAR und WAR gepackt 

KRUG: EJB-Module, die Enterprise-Java-Beans (Klassendateien) und den EJB-Implementierungsdeskriptor enthalten, werden als JAR-Dateien mit der Erweiterung .jar gepackt 

KRIEG: Webmodule, die Servlet-Klassendateien, JSP-Dateien, Unterstützungsdateien, GIF- und HTML-Dateien enthalten, werden als JAR-Datei mit der Erweiterung .war (Webarchiv) gepackt 

OHR: Alle oben genannten Dateien (.jar und .war) werden als JAR-Datei mit der Erweiterung .ear (Enterprise Archive) gepackt und in Application Server bereitgestellt.

459
elhoim

Ein WAR (Web Archive) ist ein Modul, das in einen Web Container eines Java Application Server. Ein Java -Anwendungsserver verfügt über zwei Container (Laufzeitumgebungen) - einer ist ein Webcontainer und der andere ist ein EJB-Container.

Der Webcontainer hostet Webanwendungen, die auf JSP oder der Servlets-API basieren - speziell für die Bearbeitung von Webanfragen entwickelt - und ist somit eher ein Anforderungs-/Antwortstil des verteilten Rechnens . Für einen Webcontainer muss das Webmodul als WAR-Datei gepackt sein. Hierbei handelt es sich um eine spezielle JAR-Datei mit einer web.xml-Datei im Ordner WEB-INF.

Ein EJB-Container hostet Enterprise Java -Beans, die auf der EJB-API basieren und erweiterte Geschäftsfunktionen wie deklarative Transaktionen und deklarative Methoden bereitstellen Sicherheit und Multiprotokoll-Unterstützung - also eher ein RPC-Stil für verteiltes Computing . Für EJB-Container müssen EJB-Module als JAR-Dateien gepackt werden . Diese haben eine ejb-jar.xml-Datei im META-INF-Ordner.

Unternehmensanwendungen können aus einem oder mehreren Modulen bestehen, die entweder Webmodule (als WAR-Datei gepackt) oder EJB-Module (als JAR-Datei gepackt) sein können. oder beide. Unternehmensanwendungen werden als EAR-Dateien gepackt. Hierbei handelt es sich um spezielle JAR-Dateien, die eine application.xml-Datei im Ordner META-INF enthalten.

Grundsätzlich sind EAR-Dateien eine Obermenge, die WAR-Dateien und JAR-Dateien enthält . Java Anwendungsserver ermöglichen die Bereitstellung eigenständiger Webmodule in einer WAR-Datei. Intern erstellen sie jedoch EAR-Dateien als Wrapper für WAR-Dateien. Eigenständige Webcontainer wie Tomcat ​​und Jetty unterstützen keine EAR-Dateien - dies sind keine vollwertigen Anwendungsserver. Webanwendungen in diesen Containern dürfen nur als WAR-Dateien bereitgestellt werden.

In Anwendungsservern enthalten EAR-Dateien Konfigurationen wie Anwendungssicherheitsrollenzuordnung, EJB-Referenzzuordnung und Kontextstamm-URL-Zuordnung von Webmodulen.

Neben Webmodulen und EJB-Modulen können EAR-Dateien auch als RAR-Dateien gepackte Connector-Module und als JAR-Dateien gepackte Client-Module enthalten.

565

krieg - Webarchiv. Es wird verwendet, um Webanwendungen gemäß dem Servlet-Standard bereitzustellen. Es ist eine JAR-Datei, die ein spezielles Verzeichnis mit dem Namen WEB-INF und mehrere darin enthaltene Dateien und Verzeichnisse (web.xml, lib, Klassen) sowie alle HTML-, JSP-, Bilder-, CSS-, JavaScript- und anderen Ressourcen der Webanwendung enthält

ohr - Unternehmensarchiv. Es wird verwendet, um Unternehmensanwendungen bereitzustellen, die EJBs, Webanwendungen und Bibliotheken von Drittanbietern enthalten. Es ist auch eine JAR-Datei, es hat ein spezielles Verzeichnis namens APP-INF, das die Datei application.xml enthält, und es enthält JAR- und WAR-Dateien.

37

WAR-Dateien (Webarchivdateien) enthalten Servlet-Klassendateien, JSPs (Java-Servletseiten), HTML- und Grafikdateien sowie andere unterstützende Dateien.

EAR-Dateien (Enterprise Archive) enthalten die WAR-Dateien zusammen mit den JAR-Dateien, die Code enthalten.

In diesen Dateien können andere Dinge enthalten sein, aber im Wesentlichen waren sie für das gedacht, was sie so klingen, als ob sie bedeuten: WAR für webartige Sachen, EAR für unternehmensspezifische Sachen (WARs, Code, Connectors usw.).

25
paxdiablo

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

tar (Bandarchive) - Das verwendete Format ist eine Datei, die in seriellen Einheiten von fileName, fileSize und fileData - geschrieben wird. kann riesig sein

Jar (Java-Archiv) - verwendete Komprimierungstechniken - enthält im Allgemeinen Java-Informationen wie Klassen-/Java-Dateien. Kann aber beliebige Dateien und Verzeichnisstrukturen enthalten

war (Webanwendungsarchive) - ähnlich wie JAR-Dateien haben nur eine spezifische Verzeichnisstruktur gemäß der JSP/Servlet-Spezifikation für Bereitstellungszwecke

ohr (Unternehmensarchive) - ähnlich wie JAR-Dateien. Die Verzeichnisstruktur muss den J2EE-Anforderungen entsprechen, sodass sie auf J2EE-Anwendungsservern bereitgestellt werden kann. __- kann mehrere JAR- und WAR-Dateien enthalten

10
simpleDev

JAR-Dateien

Eine JAR-Datei (Abkürzung für Java Archive) ermöglicht die Kombination mehrerer -Dateien in einer einzigen. Dateien mit der '.jar'; Diese Erweiterung wird von __.software-Entwicklern zum Verteilen von Java-Klassen und verschiedenen Metadaten verwendet. Diese enthalten auch Bibliotheken und Ressourcendateien sowie die dazugehörigen Zubehördateien.

Benutzer können JAR-Dateien mit dem Befehl (JDK) des Java Development Kits '.jar' extrahieren und erstellen. Zip-Tools können auch verwendet werden.

JAR-Dateien haben optionale Manifestdateien. Einträge in der Manifestdatei Geben die Verwendung der JAR-Datei vor. Eine 'main'-Klassenspezifikation für eine Dateiklasse Bezeichnet die Datei als ein getrenntes oder eigenständiges Programm.

WAR-Dateien

Eine WAR-Datei (oder ein Webanwendungsarchiv) kann XML (Extensible Markup Language) -Dateien, Java-Klassen sowie Java Server -Seiten für Internetanwendungen enthalten. Es wird auch verwendet, um Bibliotheken und Webseiten zu markieren, aus denen eine Webanwendung besteht. Dateien mit der Erweiterung ".war" enthalten die Web-App zur Verwendung mit Server- oder JSP-Containern (Java Server Page). Es enthält JSP, HTML (Hypertext Markup Language), JavaScript und verschiedene Dateien zum Erstellen der oben genannten Web-Apps.

Eine WAR-Datei ist so strukturiert, dass sie spezielle Verzeichnisse und -Dateien zulässt. Es kann auch eine digitale Signatur (ähnlich einer JAR-Datei) Enthalten, um die Richtigkeit des Codes anzuzeigen.

EAR-Dateien

Eine EAR-Datei (Enterprise Archive) führt JAR- und WAR-Dateien in ein einzelnes Archiv Ein. Diese Dateien mit der Erweiterung ".ear" haben ein Verzeichnis für Metadaten. Die Module werden in ein Archiv gepackt, um einen reibungslosen und gleichzeitigen Betrieb der verschiedenen Module innerhalb eines App-Servers zu ermöglichen.

Die EAR-Datei verfügt auch über Implementierungsdeskriptoren (XML-Dateien) , Die die Bereitstellung der verschiedenen Module effektiv vorgeben.

 enter image description here

9

Ohrdateien bieten weitere Optionen zum Konfigurieren der Interaktion mit dem Anwendungsserver.

Beispiel: Wenn die Hibernat-Version des Anwendungsservers älter ist als die von Ihren Abhängigkeiten bereitgestellte, können Sie zu ear-deployer-jboss-beans.xml für JBOSS Folgendes hinzufügen, um Classloader zu isolieren und Konflikte zu vermeiden:

<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">    
  <property name="isolated">true</property>
</bean>

oder zu 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> 

Dadurch wird sichergestellt, dass zwischen Ihrer Anwendung und dem Anwendungsserver kein Klassenlader-Konflikt vorliegt. 

Normalerweise funktioniert der Classloader-Mechanismus folgendermaßen:

Wenn eine Klassenladeanforderung einem Klassenlader präsentiert wird, wird zuerst fordert seinen übergeordneten Klassenlader auf, die Anforderung zu erfüllen. Das übergeordnete Element in biegen Sie das übergeordnete Element nach der Klasse, bis die Anforderung den Anfang erreicht der Hierarchie. Wenn sich der Klassenlader oben in der Hierarchie befindet. kann die Anforderung nicht erfüllen, dann das untergeordnete Klassenladeprogramm, das sie aufgerufen hat ist für das Laden der Klasse verantwortlich.

Durch das Isolieren der Classloader wird Ihr Ear-Classloader nicht in die übergeordnete Klasse (= JBoss/anderer AS-Classloader) blicken .. __ Soweit ich weiß, ist dies mit WAR-Dateien nicht möglich.

6
Mark

J2EE definiert drei Arten von Archiven:

  1. Java Archives (JAR) Eine JAR-Datei enthält eine oder mehrere Java-Klassen, ein Manifest und einen Deskriptor. JAR-Dateien sind die unterste Archivebene. JAR-Dateien werden in J2EE zum Verpacken von EJBs und clientseitigen Java-Anwendungen verwendet.

  2. Web Archives (WAR) WAR-Dateien ähneln JAR-Dateien, sind jedoch speziell für Webanwendungen aus Servlets, JSPs und unterstützenden Klassen gedacht.

  3. Enterprise Archives (EAR) ”Eine EAR-Datei enthält alle Komponenten, aus denen eine bestimmte J2EE-Anwendung besteht.

6
user1884500

Um den Projekttransport zu vereinfachen, muss die Bereitstellung leicht gemacht werden Muss in eine Datei .. __ JAR-Gruppe (Java-Archiv) von .class-Dateien komprimiert werden

WAR (Webarchiv) - Jeder Krieg stellt eine Webanwendung dar - Verwenden Sie nur webbezogene Technologien wie Servlet, es können auch Jsps verwendet werden. - kann auf dem Tomcat-Server ausgeführt werden - Web-App, die nur mit webbezogenen Technologien entwickelt wurde. jsp servlet html js - Infodarstellung nur keine Transaktionen.

EAR (Enterprise Archive) - Jeder Krieg steht für eine Unternehmensanwendung - wir können alles von J2ee wie EJB verwenden, JMS kann gerne verwendet werden . - kann auf Glassfish-Servern ausgeführt werden, die nicht auf einem Tomcat-Server ausgeführt werden können . - Enterprise-App, entwickelt von jeder Technologie von J2ee, wie alle Web-Systeme app plus ejbs jms usw. - führt Transaktionen mit Infodarstellung durch. z.B. Bank-App, Telekom-App

0
Ashish Kamble