如果我想要EJB 3.0支持并希望运行Java 7,我是否需要Java EE或者我能坚持使用SE吗?
在过去(许多JDK版本之前),需要JDK的“J2EE”版本来运行EJB。这似乎不再是真的。请指教。
更新:我应该提到应用程序将在Oracle WebLogic 10.3.6中运行。
答案 0 :(得分:5)
不,这没有改变。 EJB是Java EE的一部分,而不是Java SE。这可能永远不会改变,因为EJB的基础架构支持很大(并且不太可能包含在Java SE中)。
答案 1 :(得分:5)
EJB是Java EE的一部分。但是,如果您想要的是JPA,即使API包含在Java EE(here's the API documentation)中,您也不再需要JPA的Java EE应用程序服务器(与EJB实体bean的情况不同)。 JPA可以与Java SE一起使用。
如果你在Weblogic中运行它,那么你可以访问Java EE,所以我不明白这个问题。
答案 2 :(得分:1)
为了运行EJB,您需要一个EJB容器(例如Glassfish),它不包含在Java SE 7中。
答案 3 :(得分:1)
我认为你错了。 EJB仍然只是Java EE规范的一部分,而不是Java SE。如果查看Java SE API,则不会引用EJB。
答案 4 :(得分:1)
您可以使用EJB的3.1 Lite容器 - http://docs.oracle.com/javaee/6/api/javax/ejb/embeddable/EJBContainer.html在非Java EE应用程序服务器中使用EJB。 所有符合Java EE 6的应用程序服务器必须能够以嵌入模式运行。
然而,这不是Java SE 7功能(它在Java SE 6中运行良好)而是Java EE 6 API,所以如果你坚持使用EJB 3.0而不是需要使用应用服务器或某些实现者 - 特定功能。