我最近阅读了EJB in Action
,并在此文中标明了:
The Java EE 6 specification allows for session and message-driven beans to be included
inside a WAR module instead of having to deploy them separately in an EJB-JAR module.
When included in a WAR module, the beans run in the EJB Lite container.
如果When included in a WAR module, the beans run in the EJB Lite container.
为真,我在规范中找不到任何信息。
EJB可以在完整ejb容器中的.war
运行中打包,也可以严格限制为Lite版本。有关此事的任何消息来源都欢迎:)
答案 0 :(得分:4)
Java EE 6规范允许将会话和消息驱动的bean包含在WAR ...
中
这只是部分正确!根据{{3}},message-driven beans
不一定是EJB lite的一部分(参见下面提取并显示的 Chapter 21.1:EJB Lite ):
21.1 EJB 3.1 Lite
EJB API由大型功能集组成,支持在各种企业应用程序中实现业务逻辑。但是,所有API合同并非总是至关重要 运行环境。此外,完整API的广度可能会给刚刚开始使用Enterprise JavaBeans技术的开发人员带来挑战。
由于这些原因,此规范定义了EJB API的最小子集,称为EJB 3.1 Lite。 EJB 3.1 Lite不是产品。相反,它是完整EJB 3.1 API的适当子集,包括适用于编写可移植事务业务逻辑的小型,强大的EJB功能选择。定义 - EJB 3.1 Lite的一个选项使供应商能够在其产品中仅实现EJB API的可移植子集。功能集的大小减小使其适合包含在更广泛的范围内 Java产品,其中许多产品的安装和运行时占用空间比典型的完整Java EE实现要小得多。
EJB 3.1 Lite应用程序只是一个EJB应用程序,其EJB API使用属于EJB Lite子集。没有为EJB 3.1 Lite定义的特殊API。 因此,任何EJB 3.1 Lite应用程序都可以部署在任何实现Enterprise JavaBeans技术的Java EE产品上,无论该产品是否支持EJB 3.1 Lite或完整的EJB API。
如表27所示,EJB 3.1 Lite API由以下EJB API子集组成:
- 无状态,有状态和单例会话Bean组件
- 仅限本地和无界面视图
- 仅限同步方法调用
- 容器管理的事务/ Bean管理的事务
- 声明性和程序化安全性
- 拦截
- 部署描述符支持(ejb-jar.xml)
您的问题的答案
EJB可以在完整的ejb容器中运行.war运行,也可以严格限制在Lite版本中。
也由规范回答:参见上述摘录中的粗体部分。需要Java EE 6 Web Profile才能支持.war
文件,该文件也是完整配置文件的一部分。
您可以在以下网址找到更多信息: