2010-10-13 39 views
11

Tôi vừa mới bắt đầu đọc trên EJB.Giải thích EJB về EAR và WAR

Ngay cả khi tôi mạo hiểm vào nó, tôi có một vài câu hỏi dựa trên những gì tôi đã nghe về chúng.

  1. Các ứng dụng sử dụng EJB luôn phải được triển khai dưới dạng EAR không?
  2. Các ứng dụng có chứa EJB được triển khai giống như các dự án web java khác sử dụng ECLIPSE và không sử dụng ANT?

Trả lời

25

1.Các ứng dụng sử dụng ejb luôn phải được triển khai dưới dạng EAR?

số

Các module EJB được lắp ráp vào một JAR, cho phép gọi nó là myapp-ejb.jar như một quy ước đặt tên.

Mã này chứa mã EJB cũng như tệp mô tả triển khai được gọi là ejb-jar.xml trong EJB 2.x. Trong EJB 3.0, bản thân mã chứa các chú thích cần thiết cho máy chủ để hiểu về triển khai, do đó, các bộ mô tả triển khai là tùy chọn. Bộ mô tả/chú thích triển khai bao gồm những thứ cơ bản cần thiết cho việc triển khai EJB như JNDI, DataSource tra cứu, v.v.

Một tập hợp nhiều mô-đun EJB và các mô-đun Web khác cùng nhau tạo thành EAR. Như @Isaac đã chỉ ra, một EAR không phải bao gồm bất kỳ tệp WAR nào trong đó. Điều kiện duy nhất cho một tệp EAR là chứa ít nhất một mô-đun J2EE thuộc bất kỳ loại nào.

EAR cần META-INF/application.xml liệt kê tất cả các lọ và chiến tranh EJB có trong EAR. Vì vậy, bạn đi cho một EAR khi bạn có nhiều mô-đun EJB mà thường là trường hợp, do đó việc triển khai thông thường là của một EAR.

Ví dụ về tệp này được hiển thị bên dưới được lấy từ http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejdev003.htm. Đây là một bài viết hay để bạn đọc.

<application> 
    <display-name>master-application</display-name> 
    <module> 
    <ejb>ejb1.jar</ejb> 
    </module> 
    <module> 
    <ejb>ejb2.jar</ejb> 
    </module> 
    <module> 
    <java>appclient.jar</java> 
    </module> 
    <module> 
    <web> 
     <web-uri>clientweb.war</web-uri> 
     <context-root>webapp</context-root> 
    </web> 
    </module> 
    <module> 
    <ejb>ejb3.jar</ejb> 
    </module> 

ứng dụng 2.Có có chứa EJB của được triển khai giống như java dự án web khác khác sử dụng Eclipse và không sử dụng ANT

Vâng, một lần một EAR/JAR được lắp ráp nó có thể được triển khai vào một máy chủ (thông qua Eclipse nếu bạn muốn).

Ant là công cụ xây dựng không liên quan gì đến việc triển khai thực tế mã EJB. Nó được sử dụng để biên dịch và lắp ráp JAR - cũng có thể được thực hiện từ Eclipse.

Đây is a tutorial which does just that.

Đọc thêm

Packaging Applications

Packaging EJB3 Applications

+1

Tốt lời giải thích. Chỉnh sửa nhỏ mặc dù: một EAR không _have_ để bao gồm bất kỳ tệp WAR nào trong đó.Điều kiện duy nhất cho một tệp EAR là chứa ít nhất một mô-đun J2EE, thuộc bất kỳ loại nào. – Isaac

+0

@Isaac: Cảm ơn, sẽ làm rõ rằng trong câu trả lời – JoseK

+0

necrobumping, tôi có thể có các thư viện được nhúng vào bình ejb không? – carpinchosaurio

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