Bir nedir .war ve .ear dosya?
Bir nedir .war ve .ear dosya?
Yanıtlar:
Gönderen GeekInterview :
J2EE uygulamasında, modüller işlevselliklerine göre EAR, JAR ve WAR olarak paketlenir
JAR: Kurumsal java fasulye (sınıf dosyaları) ve EJB dağıtım tanımlayıcısı içeren EJB modülleri, .jar uzantılı JAR dosyaları olarak paketlenir
UYARI: Servlet sınıfı dosyaları, JSP Dosyaları, destek dosyaları, GIF ve HTML dosyaları içeren Web modülleri, .war (web arşivi) uzantılı bir JAR dosyası olarak paketlenir
EAR: Yukarıdaki tüm dosyalar (.jar ve .war) .ear (kurumsal arşiv) uzantılı bir JAR dosyası olarak paketlenir ve Uygulama Sunucusuna dağıtılır.
Bir SAVAŞ (Web Arşiv) bir içine yüklenen bir modüldür Web kabın a Java Application Server . Java Uygulama Sunucusu'nun iki kapsayıcı (çalışma zamanı ortamları) vardır - biri Web kapsayıcısı, diğeri ise EJB kapsayıcısı.
Web kap JSP veya Servlet'ler API göre ana Web uygulamaları - web isteği kullanım için özel olarak tasarlanmış - bu nedenle daha fazla a dağıtık bilgisayar istek / yanıt tarzı . Web kapsayıcısı, Web modülünün WAR dosyası olarak paketlenmesini gerektirir; bu, klasördeki bir web.xml
dosyaya sahip özel bir JAR dosyasıdır WEB-INF
.
Bir EJB konteyner böyle bildirim işlemleri, bildirime yöntem seviyesi güvenlik ve birden çok iletişim desteği gibi genişletilmiş iş işlevsellik sağlamak üzere tasarlanmış EJB API tabanlı bilgisayarlar Şirket java fasulye - yani daha bir ait bir RPC stili bilgisayar dağıtılmış . EJB kapsayıcıları, EJB modüllerinin JAR dosyaları olarak paketlenmesini gerektirir ejb-jar.xml
; bunların META-INF
klasörde bir dosyası vardır .
Kurumsal uygulamalar , Web modülleri (WAR dosyası olarak paketlenmiştir), EJB modülleri (JAR dosyası olarak paketlenmiştir) veya her ikisi de olabilen bir veya daha fazla modülden oluşabilir. Kurumsal uygulamalar EAR dosyaları olarak paketlenir - bunlar klasörde bir application.xml
dosya içeren özel JAR dosyalarıdır META-INF
.
Temel olarak, EAR dosyaları WAR dosyalarını ve JAR dosyalarını içeren bir üst kümedir . Java Uygulama Sunucuları, bağımsız Web modüllerinin bir WAR dosyasına dağıtılmasına izin verir, ancak dahili olarak, WAR dosyalarının etrafında bir sarıcı olarak EAR dosyaları oluştururlar. Tomcat ve Jetty gibi bağımsız web kapsayıcıları EAR dosyalarını desteklemez - bunlar tam teşekküllü Uygulama sunucuları değildir. Bu kapsayıcılardaki web uygulamaları yalnızca WAR dosyaları olarak dağıtılacaktır.
Uygulama sunucularında, EAR dosyaları uygulama güvenliği rol eşlemesi, EJB referans eşlemesi ve web modüllerinin bağlam kökü URL eşlemesi gibi yapılandırmalar içerir.
Web modülleri ve EJB modülleri dışında, EAR dosyaları ayrıca RAR dosyaları olarak paketlenmiş bağlayıcı modülleri ve JAR dosyaları olarak paketlenmiş İstemci modülleri içerebilir.
.jar
, .war
ve .ear
dosyalar basit zip arşivler, sıradan .zip dosyalarını işleyebilir herhangi bir program tarafından açılacak verme yeteneğine sahiptirler.
savaş web arşivi. Web uygulamalarını sunucu uygulaması standardına göre dağıtmak için kullanılır. WEB-INF adı verilen özel bir dizini ve içindeki çeşitli dosyaları ve dizinleri (web.xml, lib, sınıflar) ve web uygulamasının tüm HTML, JSP, resimleri, CSS, JavaScript ve diğer kaynaklarını içeren bir kavanoz dosyasıdır.
kulak - işletme arşivi. EJB'leri, web uygulamalarını ve 3. taraf kitaplıklarını içeren kurumsal uygulamayı dağıtmak için kullanılır. Ayrıca bir jar dosyasıdır, application.xml dosyasını içeren APP-INF adlı özel bir dizine sahiptir ve jar ve savaş dosyaları içerir.
WAR (web arşivi) dosyaları sunucu uygulaması sınıf dosyalarını, JSP'leri (Java sunucu uygulaması sayfaları), HTML ve grafik dosyalarını ve diğer destek dosyalarını içerir.
EAR (kurumsal arşiv) dosyaları, WAR dosyalarını, kod içeren JAR dosyalarıyla birlikte içerir.
Bu dosyalarda başka şeyler de olabilir, ancak temel olarak kastettikleri anlamına gelirler: Web tipi şeyler için SAVAŞ, kurumsal tip şeyler için EAR (WARs, kod, bağlayıcılar ve diğerleri).
JAR Dosyaları
Bir JAR (Java Arşivi kısaltması) dosyası, birkaç dosyanın tek bir dosyada birleştirilmesine izin verir. '.Jar' olan dosyalar; uzantısı, Java sınıflarını ve çeşitli meta verileri dağıtmak için yazılım geliştiricileri tarafından kullanılır. Bunlar ayrıca kitaplıkların ve kaynak dosyalarının yanı sıra aksesuar dosyalarını (özellik dosyaları gibi) tutar.
Kullanıcılar Java Geliştirme Kiti'nin (JDK) '.jar' komutuyla JAR dosyalarını çıkarabilir ve oluşturabilir. ZIP araçları da kullanılabilir.
JAR dosyalarının isteğe bağlı bildirim dosyaları vardır. Manifest dosyasındaki girdiler JAR dosyasının kullanımını belirler. Bir dosya sınıfı için 'ana' sınıf belirtimi, dosyayı bağımsız veya 'bağımsız' bir program olarak gösterir.
WAR Dosyaları
WAR (veya Web Uygulaması arşivi) dosyaları, İnternet uygulaması amacıyla XML (genişletilebilir İşaretleme Dili) dosyaları, Java sınıfları ve Java Sunucusu sayfalarını içerebilir. Ayrıca, bir Web uygulamasını oluşturan kitaplıkları ve Web sayfalarını işaretlemek için kullanılır. '.War' uzantılı dosyalar, sunucu veya JSP (Java Sunucu Sayfası) kapsayıcılarıyla kullanım için Web uygulamasını içerir. JSP, HTML (Köprü Metni Biçimlendirme Dili), JavaScript ve yukarıda belirtilen Web uygulamalarını oluşturmak için çeşitli dosyalara sahiptir.
WAR dosyası, özel dizinlere ve dosyalara izin verecek şekilde yapılandırılmıştır. Ayrıca, kodun doğruluğunu göstermek için dijital bir imzası da olabilir (JAR dosyasınınkine çok benzer).
EAR Dosyaları
Bir EAR (Enterprise Archive) dosyası, JAR ve WAR dosyalarını tek bir arşivde birleştirir. '.Ear' uzantılı bu dosyaların meta veriler için bir dizini vardır. Modüller, bir uygulama sunucusundaki farklı modüllerin düzgün ve eşzamanlı çalışması için arşiv üzerinde paketlenir.
EAR dosyasında, farklı modüllerin dağıtımını etkili bir şekilde dikte eden dağıtım tanımlayıcıları (XML dosyalarıdır) vardır.
Bakınız: http://www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar (teyp arşivleri) - Kullanılan biçim, fileName, fileSize, fileData öğelerinin seri birimlerinde yazılan dosyadır - sıkıştırma yok. kocaman olabilir
Jar (java arşivi) - kullanılan sıkıştırma teknikleri - genellikle class / java dosyaları gibi java bilgileri içerir. Ancak herhangi bir dosya ve dizin yapısı içerebilir
war (web uygulaması arşivleri) - jar dosyalarına benzer şekilde, dağıtım amacıyla JSP / Servlet spesifikasyonlarına göre yalnızca belirli dizin yapıları vardır
ear (kurumsal arşivler) - jar dosyalarına benzer. J2EE uygulama sunucularına dağıtılabilmesi için J2EE gereksinimlerini izleyen dizin yapısına sahiptir. - birden fazla JAR ve WAR dosyası içerebilir
Kulak dosyaları, uygulama sunucusuyla etkileşimi yapılandırmak için daha fazla seçenek sunar.
Örneğin: uygulama sunucusunun hazırda bekletme sürümü bağımlılıklarınız tarafından sağlanandan daha eskiyse, JBOSS'un sınıf yükleyicileri ayırması ve çakışmalardan kaçınması için ear-deployer-jboss-beans.xml dosyasına aşağıdakileri ekleyebilirsiniz:
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
veya src / main / application / META-INF / jboss-app.xml dosyasına:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
Bu, uygulamanız ve uygulama sunucusu arasında herhangi bir sınıf yükleyici çakışması olmamasını sağlayacaktır.
Normalde sınıf yükleyici mekanizması şu şekilde çalışır:
Bir sınıf yükleyiciye bir sınıf yükleme talebi sunulduğunda, ilk önce üst sınıf yükleyicisinden isteği yerine getirmesini ister. Daha sonra, üst öğe, istek hiyerarşinin en üstüne ulaşıncaya kadar üst sınıfından sınıf ister. Hiyerarşinin üst kısmındaki sınıf yükleyici isteği yerine getiremezse, sınıfın yüklenmesinden sorumlu olan alt sınıf yükleyici sorumludur.
Sınıf yükleyicileri izole ederek, kulak sınıf yükleyiciniz üst öğeye bakmaz (= JBoss / diğer AS sınıf yükleyici). Bildiğim kadarıyla, savaş dosyaları ile bu mümkün değil.
J2EE üç tür arşiv tanımlar:
Java Arşivleri (JAR) JAR dosyası, bir veya daha fazla Java sınıfını, bir bildirimi ve bir tanımlayıcıyı içine alır. JAR dosyaları en düşük arşiv düzeyidir. JAR dosyaları J2EE'de EJB'leri ve istemci tarafı Java Uygulamalarını paketlemek için kullanılır.
Web Arşivleri (WAR) WAR dosyaları, özellikle Servlets, JSP'ler ve destekleyici sınıflardan yapılan web uygulamaları için olmaları dışında JAR dosyalarına benzer.
Kurumsal Arşivler (EAR) ”Bir EAR dosyası, belirli bir J2EE uygulamasını oluşturan tüm bileşenleri içerir.
Proje taşımasını kolaylaştırmak için dağıtım kolaylaştı. tek bir dosyada sıkıştırılması gerekir. .Class dosyalarının JAR (java arşivi) grubu
SAVAŞ (web arşivi) - her savaş bir web uygulamasını temsil eder - yalnızca servlet, jsps gibi web ile ilgili teknolojileri kullanın. - Tomcat sunucusunda çalışabilir - web ilgili teknolojiler tarafından geliştirilen web uygulaması sadece jsp servlet html js - bilgi gösterimi sadece hiçbir işlem.
EAR (kurumsal arşiv) - her kulak bir kurumsal uygulamayı temsil eder - jjee'den ejb gibi bir şey kullanabiliriz, jms mutlu bir şekilde kullanılabilir. - Tomcat sunucusunda değil sunucu gibi Glassfish üzerinde çalışabilir. - tüm web uygulaması artı ejbs jms vb gibi herhangi bir teknoloji j2ee bir şey tarafından geliştirilen kurumsal uygulaması - bilgi temsil ile işlemler yapar. Örneğin. Banka uygulaması, Telekom uygulaması
.JAR, .WAR and .EAR
edinmek için bir video eğitimi de görebilirsiniz. Çok basit veya daha anlaşılır. .JAR, .WAR ve .EAR arasındaki farkın ne olduğunu açıklayacaktır Video Eğitimi : .JAR, .WAR ve .EAR Arasındaki Fark