嵌入式EJB容器与实际服务器容器之间有什么区别

Bal*_*ala 2 openejb ejb-3.0 ejb-3.1

嵌入式EJB容器与生产中使用的实际服务器容器之间的明显区别是什么。

我可以找到2个sceanrios。

  1. 例如。glassfish-embedded-static-shell.jar-没有任何实现,并且取决于glassfish服务器的本地安装。
  2. 像OpenEJB一样-只需将jar添加到类路径中,而无需进行安装。

AFAIK,两者都称为嵌入式容器。那么,它的真正含义是什么?

另外,嵌入式容器是否具有EJB规范支持的所有功能?

Bre*_*ail 5

服务器EJB容器是作为应用程序服务器应用程序的一部分启动的,通常与应用程序服务器随附的其他服务和技术进行更深入的集成。当您获得控制权时(例如,因为您的类具有main方法,并且您希望拥有EJB),可嵌入的EJB容器将由您的应用程序启动。因此,可嵌入的EJB容器便于进行单元测试。

可嵌入式EJB容器可能具有(但不是必需)具有EJB规范支持的所有功能。EJB 3.1规范的表27(第21.1节)列出了可嵌入EJB容器所需的功能。特别是,嵌入式EJB容器要求支持:

  • 远程EJB(作为客户端或服务器)。
  • 网页服务
  • 计时器
  • MDB和实体bean