如果我需要EJB 3.0支持並想運行Java 7,我需要Java EE嗎?還是我可以堅持使用SE?Java 7 SE是否支持EJB?
在過去(很多JDK版本之前),需要JDK的「J2EE」版本來運行EJB。看起來這不再是事實。請指教。
更新:我應該提到應用程序將在Oracle WebLogic 10.3.6內部運行。
如果我需要EJB 3.0支持並想運行Java 7,我需要Java EE嗎?還是我可以堅持使用SE?Java 7 SE是否支持EJB?
在過去(很多JDK版本之前),需要JDK的「J2EE」版本來運行EJB。看起來這不再是事實。請指教。
更新:我應該提到應用程序將在Oracle WebLogic 10.3.6內部運行。
EJB是Java EE的一部分。但是,如果您想要的是JPA,即使API包含在Java EE(here's the API documentation)中,您不再需要用於JPA的Java EE應用程序服務器(與EJB實體bean的情況不同)。 JPA可以與Java SE一起使用。
如果你在Weblogic中運行它,那麼你可以訪問Java EE,所以我不明白這個問題的關鍵。
雖然沒有明確說明,但問題是我是否可以使用Java SE訪問EJB庫。基於這些答案,選項是使用Java EE SDK和/或使用應用程序服務器附帶的庫來獲得Java EE功能,例如EJB。我已經接受了你的答案,因爲這是正確的答案。 – BestPractices
@BestPractices:如果你只是想編譯一些東西,你可以把你的weblogic jar放入你的倉庫或使用glassfish的罐子。 –
>但是,如果您想要的是JPA,那不再是Java EE的一部分 - 這並非完全正確。 JPA仍然在Java EE規範中。 CMP(Entity Beans,不要與實體混淆)已被棄用,以支持JPA。 JPA最初是作爲EJB的一個子規範開始的,但後來轉移到了自己的規範中,但仍然在Java EE中提到過。所有這些並不意味着JPA不能在Java EE之外使用,實際上它對Java SE有明確的支持。 –
爲了運行EJB,需要EJB容器(如Glassfish的),這是不包含在Java SE 7
我認爲你是錯的。 EJB仍然只是Java EE規範的一部分,而不是Java SE。如果您查看Java SE API,則不提及EJB。
不,這沒有改變。 EJB是Java EE的一部分,而不是Java SE。這可能永遠不會改變,因爲EJB的基礎架構支持是巨大的(並且不可能包含在Java SE中)。
您可以在非Java EE應用程序服務器中使用EJB和EJB的3.1 Lite容器 - http://docs.oracle.com/javaee/6/api/javax/ejb/embeddable/EJBContainer.html。
所有符合Java EE 6的應用程序服務器都必須能夠在嵌入式模式下運行。
但是,這並不是Java SE 7的特性(它在Java SE 6中運行良好),而是Java EE 6 API,因此如果您堅持使用EJB 3.0,則需要使用應用程序服務器或某些實現者特定的功能。
您不需要SDK的J2EE版本。沒有這樣的事情。 JEE是一個規範,有幾個供應商像GlassFish 3.x和JBoss 6/7一樣實現它。請注意,Tomcat只是一個servlet容器,所以你不能在其中運行EJB。 –
SDK的Java EE版本:http://www.oracle.com/technetwork/java/javaee/downloads/java-ee-sdk-6u3-jdk-7u1-downloads-523391.html – BestPractices
閱讀BalusC的意見[Confusion關於Java SE和Java EE](http://stackoverflow.com/q/12773152/1065197)來理解這意味着什麼。另外,Java SE也是一個規範,有幾個供應商實現它,如[Oracle HotSpot](http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136373.html)和[OpenJDK的](http://openjdk.java.net/)。 –