2012-10-02 31 views
6

Nếu tôi muốn hỗ trợ EJB 3.0 và muốn chạy Java 7, tôi có cần Java EE hoặc tôi có thể gắn bó với SE không?Java 7 SE có hỗ trợ EJB không?

Trong quá khứ (nhiều phiên bản JDK trước đây), bạn cần phiên bản "J2EE" của JDK để chạy EJB. Nó sẽ xuất hiện điều này không còn đúng nữa. Xin cho biết.

CẬP NHẬT: Tôi nên đề cập rằng ứng dụng sẽ chạy bên trong Oracle WebLogic 10.3.6.

+0

Bạn không cần phiên bản SDK J2EE. Không có những điều như vậy. JEE là một đặc điểm kỹ thuật và có một số nhà cung cấp thực hiện nó như GlassFish 3.x và JBoss 6/7. Lưu ý rằng Tomcat chỉ là một thùng chứa servlet, vì vậy bạn không thể chạy các EJB bên trong nó. –

+0

Phiên bản Java EE của SDK: http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-7u1-downloads-523391.html – BestPractices

+1

Đọc nhận xét của BalusC trong [Lẫn lộn về Java SE và Java EE] (http://stackoverflow.com/q/12773152/1065197) để hiểu ý nghĩa của điều này. Ngoài ra, Java SE cũng là một đặc điểm kỹ thuật, có một số nhà cung cấp thực hiện nó, như [Oracle HotSpot] (http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html) và [OpenJDK] (http://openjdk.java.net/). –

Trả lời

5

EJB là một phần của Java EE. Nhưng nếu những gì bạn muốn là JPA, mặc dù API được bao gồm trong Java EE (here's the API documentation), bạn không cần một máy chủ ứng dụng Java EE cho JPA nữa (không giống như tình huống với các bean thực thể EJB). JPA có thể được sử dụng với Java SE.

Nếu bạn đang chạy ứng dụng này trong Weblogic thì bạn có quyền truy cập vào Java EE, vì vậy tôi không hiểu điểm của câu hỏi.

+0

Câu hỏi, trong khi không được tuyên bố rõ ràng, là liệu tôi có được quyền truy cập vào các thư viện EJB với Java SE hay không. Dựa trên các câu trả lời, các tùy chọn là sử dụng Java EE SDK và/hoặc sử dụng các thư viện đi kèm với máy chủ ứng dụng để có được chức năng Java EE như EJB. Tôi đã chấp nhận câu trả lời của bạn vì nó là tủ quần áo cho câu trả lời đúng. – BestPractices

+0

@BestPractices: nếu bạn chỉ muốn biên dịch nội dung nào đó trong bản dựng, bạn có thể đặt jar weblogic của mình vào kho lưu trữ hoặc sử dụng lọ thủy tinh. –

+0

> Nhưng nếu những gì bạn muốn là JPA, đó không phải là một phần của Java EE nữa - Điều này không hoàn toàn đúng. JPA vẫn nằm trong thông số kỹ thuật ô Java EE. Điều gì đã thay đổi là CMP (Entity Beans, không bị nhầm lẫn với Entities) bị phản đối vì lợi ích của JPA. JPA bắt đầu như một đặc tả con của EJB, nhưng sau đó được chuyển sang đặc tả riêng của nó, nhưng như đã đề cập trong Java EE. Tuy nhiên, tất cả điều này không có nghĩa là JPA không thể được sử dụng bên ngoài Java EE, trên thực tế nó có sự hỗ trợ rõ ràng cho Java SE. –

1

Để chạy EJB, bạn cần một EJB container (như Glassfish), mà không được bao gồm với Java SE 7.

1

Tôi nghĩ rằng bạn là sai. EJB vẫn là một phần của đặc tả Java EE, không phải Java SE. Nếu bạn nhìn vào Java SE API, không có tham chiếu đến EJB.

5

Không, điều này không thay đổi. EJB là một phần của Java EE, không phải Java SE. Điều này có lẽ sẽ không bao giờ thay đổi khi hỗ trợ cơ sở hạ tầng cho EJB là rất lớn (và sẽ không có khả năng được bao gồm trong Java SE).

1

Bạn có thể sử dụng EJB trong máy chủ ứng dụng Java EE không có hộp chứa 3.1 Lite của EJB - http://docs.oracle.com/javaee/6/api/javax/ejb/embeddable/EJBContainer.html.
Tất cả các máy chủ ứng dụng tuân thủ Java EE 6 phải có khả năng chạy ở chế độ được nhúng. Tuy nhiên, đây không phải là tính năng Java SE 7 (nó hoạt động tốt trong Java SE 6), nhưng API Java EE 6, vì vậy nếu bạn gắn bó với EJB 3.0 hơn bạn cần sử dụng máy chủ ứng dụng hoặc một số các tính năng cụ thể của người triển khai.

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