EJB不仅为Java EE应用服务器而建。 他们还可以执行在的Java EE Web Profile的容器或简单的Java SE环境(Java SE的啊- !E!ASY 的J ava 乙是指合同)。
EJB Lite
- 仅支持完整的EJB规范提供的功能的子集所必需的-相同功能的轻量级版本
- 经过Java EE Web Profile认证的容器必须支持EJB Lite规范
嵌入式容器
- 嵌入式=内存中
- 在JVM(普通Java SE环境)中执行,例如,作为较大的Java SE,JavaFX或Swing应用程序的一部分
- 支持EJB Lite规范中的所有功能所必需。
- 例如– 开放式EJB
public class EmbeddedEJBExample{//inject an EJB available on the classpath@EJBMyLocalEJB local;//use JNDI to talk to remotely deployed EJBs (via RMI)EJBContainer container = EJBContainer.createEJBContainer();Context context = container.getContext();ARemoteEJB remote = (ARemoteEJB) context.lookup(<provide JNDI name here >)
}
应用程序客户端容器
- 从技术上讲不是 EJB容器
- 在Java SE环境中执行,但也具有一些Java EE功能
- 由于它具有与Java EE相关的功能,因此可以用于通过DI(@EJB)或JNDI调用与远程部署的EJB进行通信
EC和ACC不同
- 嵌入式容器提供了运行时间来托管EJB本身
- 应用程序客户端容器旨在承载远程EJB的客户端,除了提供使用远程Java EE服务器上部署的其他服务(例如与JMS目标的交互等)的能力。
翻译自: https://www.javacodegeeks.com/2015/01/where-can-i-run-ejbs.html