【问题标题】:Choosing embedded EJB 3.x container to run Java EE 5 app on Tomcat选择嵌入式 EJB 3.x 容器在 Tomcat 上运行 Java EE 5 应用程序
【发布时间】: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 提供程序有什么优势吗?
【问题讨论】:
标签:
jakarta-ee
embedded
jms
ejb
openejb
【解决方案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: 没有