【问题标题】:what is the difference between an embedded EJB container Vs actual server container嵌入式 EJB 容器与实际服务器容器有什么区别
【发布时间】:2012-03-11 13:29:53
【问题描述】:
嵌入式 EJB 容器与生产中使用的实际服务器容器之间的明显区别是什么。
我可以找到 2 个场景。
- 例如。 glassfish-embedded-static-shell.jar - 没有任何实现,依赖于 glassfish 服务器的本地安装。
- 类似于 OpenEJB - 只需将 jar 添加到类路径中,无需安装。
AFAIK,两者都称为嵌入式容器。那么,它的真正含义是什么?
此外,嵌入式容器是否具有 EJB 规范支持的所有功能?
【问题讨论】:
标签:
ejb-3.0
ejb-3.1
openejb
【解决方案1】:
服务器 EJB 容器作为应用程序服务器应用程序的一部分启动,通常与应用程序服务器中包含的其他服务和技术进行更深入的集成。当您获得控制权时,您的应用程序会启动一个可嵌入的 EJB 容器(例如,因为您的类有一个 main 方法,而您想要拥有 EJB)。因此,可嵌入的 EJB 容器便于单元测试。
可嵌入的 EJB 容器可能但不要求具有 EJB 规范支持的所有功能。 EJB 3.1 规范的表 27(第 21.1 节)列出了可嵌入 EJB 容器所需的特性。特别是,不需要支持可嵌入的 EJB 容器:
- 远程 EJB(作为客户端或服务器)。
- 网络服务
- 定时器
- MDB 和实体 bean