2009-01-16 13 views
6

Yetkilendirmek için bir JAR dosyasına sahibim. WAR dosyalarımın her birine ihtiyacım var. Tüm WAR dosyaları bir EAR dosyasında paketlenmiştir. Bu ortak JAR'ı her savaşta tekrarlamalı mıyım yoksa ortak kütüphaneler için bir yapı mı var?Ortak JAR'lar, EAR'de SAVAŞLAR arasında tekrarlanmak zorunda mı?

Yani benim örnek common1.jar görebilirsiniz ...

big.ear 
    - META-INF 
    - MANIFEST.MF 
    - application.xml 
    - appl1.war 
    - META-INF 
     - MANIFEST.MF 
    - WEB-INF 
     - web.xml 
     - lib 
     - unique1.jar 
     - unique2.jar 
     - unique3.jar 
     - common1.jar 
    - jsps/html/etc 
    - appl2.war 
    - META-INF 
     - MANIFEST.MF 
    - WEB-INF 
     - web.xml 
     - lib 
     - unique3.jar 
     - unique4.jar 
     - common1.jar 
    - jsps/html/etc 
    - appl3.war 
    - META-INF 
     - MANIFEST.MF 
    - WEB-INF 
     - web.xml 
     - lib 
     - unique5.jar 
     - common1.jar 
    - jsps/html/etc 

benim WAR uygulamaların her şuna benzer, ancak EAR üç katıdır.

EAR yapısında, common1.jar komutunu koyabilirmiyim, böylece appl1, appl2 ve appl3, üç kez tekrarlanmadan görebiliyordu?

cevap

6

Standart yol, JAR'ları EAR'ınızın köküne yerleştirmek ve bunlara, WART'lerin META-INF/MANIFEST.MFClass-Path özniteliğinde gönderme yapmaktır. Bakınız this article.

Desteklendiğinden emin olmak için içindekilerin belgelerini kontrol edin.

+0

Bakın. – dacracot

+0

Bağlantı şu an itibariyle çalışmıyor. – Prince

-4

Uygulama sunucunuz, aynı örnekte birden çok webapps tarafından paylaşılabilen jar dosyaları koyabileceğiniz paylaşılan/lib gibi bir klasöre sahip olmalıdır.

+0

Bu büyük olasılıkla işe yarayacaktır, ancak kötü bir uygulama olduğunu düşünüyorum. EAR kendini içermelidir. – dacracot

+1

Kesinlikle kötü bir uygulama. Bu kavanozu yükseltmek istersen ne olur? Bunu bir dağıtımla yapabilmelisiniz, sunucu kurulumunu değiştirmemelisiniz. – cynicalman

1

Bu bölüm EE 8.2.1, JEE5 spec öyle:

bir .ear dosya JAR dosyalarında ambalajlı kütüphaneleri içeren bir dizin içerebilir. .ear dosyasının dağıtım tanımlayıcısının kütüphane-dizin öğesi bu dizinin adını içerir. Bir kitaplık-dizin öğesi belirtilmemişse veya .ear dosyası bir dağıtım tanımlayıcısı içermiyorsa, lib adlı dizin kullanılır.

İlgili konular