我正在学习Java EE(专门针对EE 6),并发现EJB和EJB Lite之间的差异有点令人困惑。
Java EE6 Web配置文件仅支持EJB Lite。
我对“EJB Lite”的理解是它是EJB的一个更简单的子集(我可以很容易地找到这些差异)并且您将EJB类打包在WAR中。
那么我是否只能从同一个WAR中包含的webapp访问这些EJB类(或者如果我将它们放在同一个EAR中,则可以访问另一个webapp)?
我认为这意味着EJB Lite类已部署到Web容器中。这是否意味着EE6 Web配置文件中没有EJB容器?
(我们还需要一个网络个人资料标签吗?)
答案 0 :(得分:1)
请注意,EJB简档由Web配置文件和EJB可嵌入容器共享。
1
所以我只能访问那些 包含来自webapp的EJB类 在同一个WAR(或其他webapp,如果 我把它们都放在同一个EAR中?
EJB 3.1规范的第20.4.3节:
本地客户端视图(包括 企业的无界面视图 在.war中定义的bean组件 文件只需要可访问 同一个.war中的组件 文件。需要访问的应用程序 企业的本地客户端视图 来自不同模块的bean 相同的应用程序应该使用ejb-jar 用于定义企业bean的文件 暴露本地客户端视图。
注意,规范允许供应商扩展,以便其他模块可以使用EJB,但依赖它不会是可移植的。
2
假设这意味着EJB Lite类被部署到Web上 容器。这是否意味着那里 EE6 Web中没有EJB容器 个人资料?
这是特定于实现的,但鉴于存在可嵌入的EJB容器,我怀疑大多数实现将提供完整的EJB容器或子集。
3
(我们还需要一个网络个人资料标签吗?)
没有