2009-01-16 22 views
6

Tôi có một tệp JAR để ủy quyền. Tôi cần nó cho mỗi tệp WAR của tôi. Tất cả các tệp WAR được đóng gói trong một tệp EAR. Tôi có phải lặp lại JAR phổ biến này trong mỗi WAR hay không, hoặc có cấu trúc cho các thư viện chung không?Các JAR thông thường có phải được lặp lại qua các WAR trong một EAR không?

Vì vậy, ví dụ của tôi trông giống như thế này ...

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 

Mỗi ứng dụng WAR của tôi có thể nhìn thấy common1.jar, nhưng nó là trong EAR ba lần.

Ở đâu trong cấu trúc EAR tôi có thể đặt common1.jar để appl1, appl2 và appl3 có thể nhìn thấy nó mà không lặp lại nó ba lần?

Trả lời

6

Cách tiêu chuẩn là đặt các JAR vào thư mục gốc của EAR của bạn và tham khảo chúng trong thuộc tính Class-Path của WARs 'META-INF/MANIFEST.MF. Xem this article.

Kiểm tra tài liệu của vùng chứa để đảm bảo tài liệu được hỗ trợ.

+0

Nhìn vào nó. – dacracot

+0

Liên kết này không hoạt động như bây giờ. – Prince

-4

Máy chủ ứng dụng của bạn phải có thư mục như shared/lib, nơi bạn có thể đặt các tệp jar có thể được chia sẻ bởi nhiều ứng dụng web trong cùng một trường hợp.

+0

Điều này có thể sẽ hiệu quả, nhưng tôi cho rằng thực tiễn không tốt. Các EAR nên được khép kín. – dacracot

+1

Chắc chắn là một thực tế xấu. Nếu bạn muốn nâng cấp cái bình này thì sao? Bạn sẽ có thể làm điều đó với một triển khai, bạn không cần phải thay đổi thiết lập máy chủ. – cynicalman

1

Đó là trong spec JEE5, chương EE 8.2.1:

Một file .ear có thể chứa một thư mục chứa các thư viện đóng gói trong các tập tin JAR. Phần tử thư mục thư viện của tập tin mô tả triển khai .ear chứa tên của thư mục này. Nếu phần tử thư viện không được chỉ định hoặc nếu tệp .ear không không chứa bộ mô tả triển khai, thư mục có tên lib là được sử dụng.

Các vấn đề liên quan