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

问题描述:

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

我可以找到2 sceanrios。

  1. 例如, glassfish-embedded-static-shell.jar - 它没有任何实现,取决于glassfish服务器的本地安装。
  2. 和OpenEJB一样 - 只需要将jar添加到classpath中,并且不需要安装。

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

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

服务器EJB容器作为应用程序服务器应用程序的一部分启动,并且通常与应用程序服务器中包含的其他服务和技术进行更深入的集成。当您获得控制权时(例如,因为您的类具有主方法并且您想拥有EJB),嵌入式EJB容器由您的应用程序启动。出于这个原因,可嵌入的EJB容器对于单元测试很方便。

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

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