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

时间:2012-03-11 13:29:54

标签: ejb-3.0 ejb-3.1 openejb

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

我可以找到2个sceanrios。

  1. 例如。 glassfish-embedded-static-shell.jar - 没有任何实现,取决于glassfish服务器的本地安装。
  2. 与OpenEJB一样 - 只需要将jar添加到类路径中,而不需要安装。
  3. AFAIK,都被称为嵌入式容器。那么,它的真正含义是什么?

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

1 个答案:

答案 0 :(得分:4)

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

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

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