选择嵌入式EJB 3.x容器在Tomcat上运行Java EE 5应用程序

5

如果我的问题听起来太泛泛而谈,我先向您道歉 - 我正在进行所有的初步研究,但没有什么能替代真正的经验...

我的目标是将一个传统的Java EE应用程序(早于EJB 3.x)移植到嵌入式EJB容器的Tomcat中。 我目前的选择如下:

  • JBoss Embeddable EJB
  • Apache OpenEJB
  • OW2 Consortium EasyBeans
  • 还有其他的吗?

我预计将使用JMS(带MDB),会话bean(有状态和无状态),JPA,并且我非常兴奋地想使用JSF与Seam。

现在,考虑到上述选择,是否存在使用一种或另一种嵌入式EJB提供程序的优势?

1个回答

6
以下是我自己的作业结果 - 希望有人能从中找到嵌入式EJB提供程序的分析,以便决定使用哪个容器。
我选择了Apache OpenEJB,因为它提供了丰富的功能,部分支持EJB 3.1,并且似乎是最活跃和最全面的选择。
通常情况下,哪种产品最适合您实际的需求、目标和环境,这真的取决于您自己。
嵌入式JBoss
- 许可证:LGPL - Java:JDK 5.0 - Tomcat集成:是,需要修改server.xml - Tomcat版本:5.0及以上(?) - 部署到Tomcat:嵌入式war - 功能列表:JNDI (本地), JBoss TS, JBoss Messaging, JCA, JNDI, EJB, JPA, 本地TX数据源/连接池, EJB 安全性JNDI配置: 通过在Tomcat的JNDI实例化之上分层来覆盖Tomcat的JNDI实现; Tomcat JNDI是只读的 - 部署类型:仅JAR - 管理支持:否 - 支持:有限,建立在JBoss 5.0的核心JBoss Microcontainer之上, 是Seam在Tomcat上的支持选项 - JMS提供程序:与JBoss 5.x相同的配置文件。JMS在hsqldb-persistence-service.xml中配置, 这可以调整以与其他数据库一起使用 - XA连接池:否 - EJB计时器服务:否 - 持久性提供程序:Hibernate - 限制:没有远程JMS;仅本地接口;仅本地JBoss JNDI实现 - 文档:有限 - EJB 3.1:否
Apache OpenEJB 3.1
  • 许可证: Apache 许可证
  • *Java:*JDK 5.0 或 6.0
  • Tomcat 集成: 是,需要修改启动脚本
  • *Tomcat 版本:* Tomcat 6.x 或 5.5
  • *部署到 Tomcat:* war 文件
  • *功能列表:* EJB 3.0 和 3.1、JTA、JAX-WS、JMS、J2EE 连接器、JPA、JNDI。OpenEJB 使用其他几个开源框架,如 OpenJPA 提供 JPA 和 CMP 持久性,ActiveMQ 用于 JMS/MDB,Apache CXF 用于 JAX-WS 功能。
  • *JNDI 配置:* 灵活的 JNDI 命名模式
  • *部署类型:* 折叠 EAR(war)、JAR
  • 管理支持: ActiveMQ JMX mbeans
  • *支持:* 社区支持、邮件列表和论坛、Apache Geronimo 的 EJB 容器
  • *JMS 提供程序:* ActiveMQ
  • *XA 连接池:* 是
  • *EJB 计时器服务:* 是
  • *持久化提供程序:* OpenJPA、Hibernate
  • *限制:* OpenEJB 使用 OpenJPA 提供 JPA 和 CMP 持久性,而 OpenJPA 目前需要 JavaAgent 才能正常运行。
  • *文档:* 有限但比其他更好
  • *EJB 3.1:* 部分支持

EasyBeans

  • *许可证:* LGPL
  • *Java:* JDK 5.0 或 6.0
  • Tomcat 集成:
  • *Tomcat 版本:* Tomcat 6.x 或 5.5
  • *部署到 Tomcat:* war 文件
  • *功能列表:* EJB 3.0、JAX-WS、OSGi 支持
  • JNDI 配置: ?
  • *部署类型:* JAR
  • 管理支持: ?
  • *支持:* 社区支持和专业支持、邮件列表、JIRA、JOnAS 应用服务器的 EJB 容器
  • JMS 提供程序: ?
  • XA 连接池: ?
  • *EJB 计时器服务:* 是
  • *持久化提供程序:* OpenJPA、Hibernate、TopLink、EclipseLink
  • 限制:
  • *文档:* 有限
  • EJB 3.1:

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接