Jaka jest różnica między plikiem .war a .ear?
Jaka jest różnica między plikiem .war a .ear?
Odpowiedzi:
Z GeekInterview :
W aplikacji J2EE moduły są pakowane jako EAR, JAR i WAR na podstawie ich funkcjonalności
JAR: moduły EJB zawierające korporacyjne pliki java bean (pliki klas) i deskryptor wdrażania EJB są pakowane jako pliki JAR z rozszerzeniem .jar
WAR: Moduły sieciowe zawierające pliki klasy serwletu, pliki JSP, pliki pomocnicze, pliki GIF i HTML są pakowane jako plik JAR z rozszerzeniem .war (archiwum sieciowe)
EAR: Wszystkie powyższe pliki (.jar i .war) są spakowane jako plik JAR z rozszerzeniem .ear (archiwum korporacyjne) i wdrożone na serwerze aplikacji.
WAR (Web Archive) jest modułem, który zostanie załadowany do kontenera WWW z Java Application Server . Serwer aplikacji Java ma dwa kontenery (środowiska wykonawcze) - jeden to kontener WWW, a drugi to kontener EJB.
Do kontenerów Web aplikacje hostingowe w oparciu o JSP lub API serwletów - zaprojektowany specjalnie do obsługi żądań internetowych - więc raczej styl żądanie / odpowiedź z obliczeń rozproszonych . Kontener WWW wymaga, aby moduł Web był spakowany jako plik WAR - jest to specjalny plik JAR z web.xml
plikiem w WEB-INF
folderze.
An kontenerów EJB gospodarze Enterprise Java Beans w oparciu o API EJB zaprojektowany, aby zapewnić rozszerzoną funkcjonalność biznesowych, takich jak transakcje deklaratywnych, deklaratywny poziom bezpieczeństwa i multiprotocol metoda wsparcia - więc bardziej o stylu RPC z obliczeń rozproszonych . Kontenery EJB wymagają spakowania modułów EJB jako plików JAR - mają one ejb-jar.xml
plik w META-INF
folderze.
Aplikacje korporacyjne mogą składać się z jednego lub większej liczby modułów, które mogą być modułami sieciowymi (spakowanymi jako plik WAR), modułami EJB (spakowanymi jako plik JAR) lub obydwoma. Aplikacje korporacyjne są pakowane jako pliki EAR - są to specjalne pliki JAR zawierające application.xml
plik w META-INF
folderze.
Zasadniczo pliki EAR są nadzbiorem zawierającym pliki WAR i JAR . Serwery aplikacji Java umożliwiają wdrażanie samodzielnych modułów sieciowych w pliku WAR, chociaż wewnętrznie tworzą pliki EAR jako opakowanie wokół plików WAR. Samodzielne kontenery internetowe, takie jak Tomcat i Jetty , nie obsługują plików EAR - nie są to pełnoprawne serwery aplikacji. Aplikacje internetowe w tych kontenerach należy wdrażać wyłącznie jako pliki WAR.
Na serwerach aplikacji pliki EAR zawierają konfiguracje, takie jak mapowanie roli zabezpieczeń aplikacji, mapowanie referencji EJB i mapowanie kontekstowego adresu URL modułów internetowych.
Oprócz modułów sieciowych i modułów EJB, pliki EAR mogą również zawierać moduły konektora spakowane jako pliki RAR oraz moduły klienta spakowane jako pliki JAR.
.jar
, .war
i .ear
pliki są proste archiwa zip, mógł więc być otwarte przez dowolny program, który może obsłużyć zwykłe pliki .zip.
wojna - archiwum internetowe. Służy do wdrażania aplikacji internetowych zgodnie ze standardem serwletu. Jest to plik jar zawierający specjalny katalog o nazwie WEB-INF oraz kilka plików i katalogów w nim zawartych (web.xml, lib, klasy), a także wszystkie HTML, JSP, obrazy, CSS, JavaScript i inne zasoby aplikacji internetowej
ucho - archiwum przedsiębiorstwa. Służy do wdrażania aplikacji korporacyjnych zawierających komponenty EJB, aplikacje internetowe i biblioteki stron trzecich. Jest to również plik jar, ma specjalny katalog o nazwie APP-INF, który zawiera plik application.xml oraz zawiera pliki jar i war.
Pliki WAR (archiwum sieciowe) zawierają pliki klasy serwletów, strony JSP (strony serwletów Java), pliki HTML i graficzne oraz inne pliki pomocnicze.
Pliki EAR (archiwum korporacyjne) zawierają pliki WAR wraz z plikami JAR zawierającymi kod.
W tych plikach mogą znajdować się inne rzeczy, ale w zasadzie mają na myśli to, co brzmią tak, jak mają na myśli: WAR dla plików typu web, EAR dla plików typu enterprise (WARs, kod, konektory i in.).
Pliki JAR
Plik JAR (skrót od Java Archive) pozwala na połączenie kilku plików w jeden. Pliki z „.jar”; rozszerzenia są wykorzystywane przez twórców oprogramowania do dystrybucji klas Java i różnych metadanych. Przechowują również biblioteki i pliki zasobów, a także pliki akcesoriów (takie jak pliki właściwości).
Użytkownicy mogą wyodrębniać i tworzyć pliki JAR za pomocą polecenia „.jar” Java Development Kit (JDK). Można również użyć narzędzi ZIP.
Pliki JAR mają opcjonalne pliki manifestu. Wpisy w pliku manifestu określają użycie pliku JAR. Specyfikacja „głównej” klasy klasy pliku oznacza plik jako odłączony lub „samodzielny” program.
Pliki WAR
Pliki WAR (lub archiwum aplikacji sieci Web) mogą zawierać pliki XML (Extensible Markup Language), klasy Java, a także strony Java Server do celów aplikacji internetowych. Służy również do oznaczania bibliotek i stron internetowych tworzących aplikację internetową. Pliki z rozszerzeniem „.war” zawierają aplikację internetową do użytku z kontenerami serwerowymi lub JSP (Java Server Page). Zawiera JSP, HTML (Hypertext Markup Language), JavaScript i różne pliki do tworzenia wyżej wymienionych aplikacji internetowych.
Plik WAR jest tak skonstruowany, że pozwala na specjalne katalogi i pliki. Może mieć także podpis cyfrowy (podobnie jak plik JAR), aby pokazać prawdziwość kodu.
Pliki EAR
Plik EAR (Enterprise Archive) łączy pliki JAR i WAR w jedno archiwum. Te pliki z rozszerzeniem „.ear” mają katalog metadanych. Moduły są spakowane w archiwum, aby zapewnić płynne i równoczesne działanie różnych modułów na serwerze aplikacji.
Plik EAR ma również deskryptory wdrażania (które są plikami XML), które skutecznie dyktują wdrażanie różnych modułów.
Patrz: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar (archiwa taśmowe) - stosowany format to plik zapisany w jednostkach szeregowych fileName, fileSize, fileData - bez kompresji. może być ogromny
Jar (archiwum java) - stosowane techniki kompresji - zazwyczaj zawierają informacje java, takie jak pliki klasy / java. Ale może zawierać dowolne pliki i strukturę katalogów
war (archiwa aplikacji internetowych) - podobnie jak pliki jar mają tylko określoną strukturę katalogów zgodnie ze specyfikacją JSP / Servlet do celów wdrażania
ucho (archiwa przedsiębiorstwa) - podobnie jak pliki jar. mieć strukturę katalogów zgodną z wymaganiami J2EE, aby można ją było wdrożyć na serwerach aplikacji J2EE. - może zawierać wiele plików JAR i WAR
Pliki Ear zapewniają więcej opcji konfigurowania interakcji z serwerem aplikacji.
Na przykład: jeśli hibernowana wersja serwera aplikacji jest starsza niż wersja dostarczona przez twoje zależności, możesz dodać następujące elementy do pliku ear-deployer-jboss-beans.xml, aby JBOSS izolował moduły ładujące klasy i unikał konfliktów:
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
lub do 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>
Pozwoli to upewnić się, że nie ma konfliktu modułu ładującego między aplikacją a serwerem aplikacji.
Zwykle mechanizm modułu ładującego klasy działa w następujący sposób:
Gdy żądanie ładowania klasy jest przedstawiane modułowi ładującemu klasy, najpierw prosi moduł ładujący klasy nadrzędnej o spełnienie żądania. Rodzic z kolei prosi swojego rodzica o klasę, dopóki żądanie nie osiągnie szczytu hierarchii. Jeśli moduł ładujący klasy na szczycie hierarchii nie może spełnić żądania, wówczas moduł ładujący klasy potomnej, który go wywołał, jest odpowiedzialny za ładowanie klasy.
Izolując moduły ładujące klasy, moduł ładujący klasy ucho nie będzie szukał elementu nadrzędnego (= moduł ładujący klasy JBoss / inny AS). O ile wiem, nie jest to możliwe w przypadku plików wojen.
J2EE definiuje trzy typy archiwów:
Archiwa Java (JAR) Plik JAR zawiera jedną lub więcej klas Java, manifest i deskryptor. Pliki JAR to najniższy poziom archiwizacji. Pliki JAR są używane w J2EE do pakowania EJB i aplikacji Java po stronie klienta.
Archiwa WWW (WAR) Pliki WAR są podobne do plików JAR, z tym wyjątkiem, że są przeznaczone specjalnie do aplikacji internetowych wykonanych z serwletów, stron JSP i klas pomocniczych.
Archiwa korporacyjne (EAR) ”Plik EAR zawiera wszystkie składniki, które składają się na określoną aplikację J2EE.
Aby ułatwić transport projektu, wdrożenie jest proste. trzeba skompresować do jednego pliku. Grupa plików JAR (archiwum Java) .class
WAR (archiwum internetowe) - każda wojna reprezentuje jedną aplikację internetową - używaj tylko technologii związanych z siecią, takich jak serwlet, można używać plików JSP. - można uruchomić na serwerze Tomcat - aplikacja internetowa opracowana tylko przez technologie pokrewne jsp servlet html js - reprezentacja informacji tylko bez transakcji.
EAR (archiwum korporacyjne) - każde ucho reprezentuje jedną aplikację korporacyjną - możemy używać czegokolwiek od j2ee, np. Ejb, z przyjemnością można używać jms. - może działać na Glassfish jak serwer, a nie na serwerze Tomcat. - aplikacja dla przedsiębiorstw opracowana przez dowolną technologię, od j2ee, jak każda aplikacja internetowa plus ejbs jms itp. - wykonuje transakcje z reprezentacją informacji. na przykład. Aplikacja bankowa, aplikacja telekomunikacyjna
.JAR, .WAR and .EAR
Możesz również zobaczyć samouczek wideo. To jest bardzo proste lub bardziej zrozumiałe. Wyjaśni, jaka jest różnica między .JAR, .WAR i .EAR Samouczek wideo : Różnica między .JAR, .WAR i .EAR