如果我的问题听起来过于通用,我很抱歉 - 我正在做自己的所有初步研究,但没有什么可以替代真实的经验......
我的目标是将遗留Java EE应用程序(pre-EJB 3.x)移植到带有嵌入式EJB容器的Tomcat.我目前的选择如下:
JBoss Embeddable EJB
Apache OpenEJB
OW2 Consortium EasyBeans
还要别的吗?
我期望使用JMS(使用MDB),会话bean(有状态和无状态),JPA,我真的很高兴将JSF与Seam一起使用.
现在,根据上面的选择,使用一个或另一个嵌入式EJB提供程序有什么优势吗?
下面是我自己的作业结果 - 希望有人发现嵌入式EJB提供程序的这种分析有助于决定是否使用哪个容器.
我选择Apache OpenEJB,因为它提供了丰富的功能,部分支持EJB 3.1,并且似乎是最活跃和最全面的产品.
像往常一样,哪种产品最适合您,实际上取决于您的实际需求,目标和环境.
嵌入式JBoss
许可证:LGPL
Java:JDK 5.0
Tomcat集成:是的,修改了server.xml
Tomcat版本:5.0及以上(?)
部署到Tomcat:嵌入式战争
功能列表:JNDI(本地),JBoss TS,JBoss消息传递,JCA,JNDI,EJB,JPA,本地TX数据源/连接池,EJB安全JNDI配置:通过在Tomcat的JNDI实例化之上分层自身来覆盖Tomcat的JNDI实现; Tomcat JNDI是只读的
部署类型:仅限JAR
管理支持:没有
支持:有限,构建于JBoss Microcontainer之上,是JBoss 5.0的核心,支持Tomcat上的Seam选项
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使用其他几个开源框架(如OpenJPA)来提供JPA和CMP持久性,ActiveMQ用于JMS/MDB,Apache CXF用于JAX-WS功能.
*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:没有