2009-01-16 12 views
6

Ho un file JAR per l'autorizzazione. Ne ho bisogno per ciascuno dei miei file WAR. Tutti i file WAR sono racchiusi in un file EAR. Devo ripetere questo JAR comune in ogni WAR, o esiste una struttura per le librerie comuni?I JAR comuni devono essere ripetuti in WAR in un EAR?

Quindi il mio esempio simile a questa ...

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 

Ognuno dei miei applicazioni guerra può vedere common1.jar, ma è nel EAR tre volte.

Dove nella struttura EAR è possibile inserire common1.jar in modo che appl1, appl2 e appl3 possano vederlo senza ripetersi tre volte?

risposta

6

Il metodo standard consiste nel mettere i JAR nella radice del vostro EAR e farvi riferimento nell'attributo Class-Path dello META-INF/MANIFEST.MF di WARs. Vedi this article.

Controllare la documentazione del contenitore per assicurarsi che sia supportata.

+0

Guardando dentro. – dacracot

+0

Il link non funziona al momento. – Prince

-4

Il server dell'app deve avere una cartella come shared/lib in cui è possibile inserire file jar che possono essere condivisi da più webapp nella stessa istanza.

+0

Probabilmente funzionerà, ma lo considero una cattiva pratica. L'EAR dovrebbe essere autonomo. – dacracot

+1

Sicuramente una cattiva pratica. Cosa succede se si desidera aggiornare questo barattolo? Dovresti essere in grado di farlo con una distribuzione, non dovresti modificare l'impostazione del server. – cynicalman

1

E 'nelle specifiche JEE5, capitolo 8.2.1 EE:

Un file .ear possono contenere una directory che contiene librerie confezionati in file JAR. L'elemento libreria-directory del descrittore di deployment del file .ear contiene il nome di questa directory. Se non è specificato un elemento della directory-libreria o se il file .ear non contiene un descrittore di distribuzione, , la directory denominata lib è utilizzata.

Problemi correlati