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

Posted

技术标签:

【中文标题】选择嵌入式 EJB 3.x 容器在 Tomcat 上运行 Java EE 5 应用程序【英文标题】:Choosing embedded EJB 3.x container to run Java EE 5 app on Tomcat 【发布时间】:2010-10-05 07:50:10 【问题描述】:

如果我的问题听起来太笼统,我很抱歉 - 我自己正在做所有的初步研究,但没有什么可以替代真实的经验......

我的目标是将遗留的 Java EE 应用程序(EJB 3.x 之前的版本)移植到具有嵌入式 EJB 容器的 Tomcat。我目前的选择如下:

JBoss 可嵌入 EJB Apache OpenEJB OW2 联盟 EasyBeans 还有什么?

我期待使用 JMS(带有 MDB)、会话 bean(有状态和无状态)、JPA,我对使用带有 Seam 的 JSF 感到非常兴奋。

现在,鉴于上述选择,使用一个或另一个嵌入式 EJB 提供程序有什么优势吗?

【问题讨论】:

【参考方案1】:

以下是我自己的作业结果 - 希望有人发现对嵌入式 EJB 提供程序的分析有助于决定是否使用以及使用哪个容器。

我选择了 Apache OpenEJB,因为它提供了丰富的功能集,部分支持 EJB 3.1,并且似乎是最活跃和最全面的产品。

像往常一样,哪种产品最适合您实际上取决于您的实际需求、目标和环境。

嵌入式 JBoss

许可证:LGPL Java:JDK 5.0 Tomcat 集成:是的,修改 server.xml Tomcat 版本:5.0 及以上 (?) 部署到 Tomcat:嵌入式战争 功能列表:JNDI(本地)、JBoss TS、JBoss Messaging、JCA、JNDI、 EJB、JPA、本地 TX 数据源/连接池,EJB 安全 JNDI 配置: 覆盖 Tomcat 的 JNDI 通过将自身分层来实现 Tomcat 的 JNDI 实例化的顶部; Tomcat JNDI 是只读的 部署类型:仅限 JAR 管理支持:否 支持:有限,建立在核心的 JBoss 微容器之上 JBoss 5.0,支持的选项 在 Tomcat 上接缝 JMS Provider:与 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 集成:是的,对启动 shell 脚本的修改 *Tomcat 版本:*Tomcat 6.x 或 5.5 *部署到 Tomcat:*war 文件 *功能列表:*EJB 3.0 和 3.1、JTA、JAX-WS、JMS、J2EE 连接器、JPA、JNDI。 OpenEJB 使用其他几个开源框架,例如提供 JPA 和 CMP 持久性的 OpenJPA、用于 JMS/MDB 的 ActiveMQ 和用于 JAX-WS 功能的 Apache CXF。 *JNDI 配置:*灵活的 JNDI 命名模式 *部署类型:*折叠的 EAR(战争)、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: 没有

【讨论】:

以上是关于选择嵌入式 EJB 3.x 容器在 Tomcat 上运行 Java EE 5 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat7.0安装配置详细(图文)

Tomcat7.0安装配置详细(图文)

tomcat和weblogic的区别

Spring与EJB的区别!!

weblogic的linux静默搭建

Tomcat Jboss Glassfish 三种常见web容器比较