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

发布于 2024-07-12 23:15:18 字数 388 浏览 7 评论 0原文

如果我的问题听起来太笼统,我提前表示抱歉 - 我自己进行了所有初步研究,但没有什么可以替代真实经验...

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

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

我期望使用 JMS(与 MDB)、会话 bean(有状态和无状态)、JPA,并且我对将 JSF 与 Seam 一起使用感到非常兴奋。

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

I am sorry in advance if my question sounds too generic - I am doing all preliminary research myself but nothing substitutes real experience...

My goal is to port a legacy Java EE application (pre-EJB 3.x) to Tomcat with embedded EJB container. My choices currently stand as follows:

  • JBoss Embeddable EJB
  • Apache OpenEJB
  • OW2 Consortium EasyBeans
  • anything else?

I am expecting to use JMS (with MDBs), Session beans (stateful and stateless), JPA and I am really excited about using JSF with Seam.

Now, given choices above, are there any advantages in using one or another embedded EJB provider?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初雪 2024-07-19 23:15:27

下面是我自己的作业结果 - 希望有人发现嵌入式 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 微容器之上
    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 使用其他几个开源框架,例如提供 JPA 和 CMP 持久性的 OpenJPA、用于 JMS/MDB 的 ActiveMQ 以及用于 JAX-WS 功能的 Apache CXF。
  • *JNDI 配置:*灵活的 JNDI 命名模式
  • *部署类型:*崩溃的 EAR(战争)、JAR
  • 管理支持: ActiveMQ JMX mbean
  • *支持:*社区支持、邮件列表和论坛、Apache 的 EJB 容器Geronimo
  • *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:

Below are results of my own homework - hopefully someone finds this analysis of embedded EJB providers helpful on deciding if and which container to use.

I went with Apache OpenEJB since it offers rich set of features, partially supports EJB 3.1 and seems as the most active and well rounded-up offering.

As usual, which product should work best for you really depends on your actual requirements, goals, and environment.

Embedded JBoss

  • License: LGPL
  • Java: JDK 5.0
  • Tomcat integration: Yes, modification to server.xml
  • Tomcat Versions: 5.0 and above (?)
  • Deployment to Tomcat: Embedded war
  • List of features: JNDI (local), JBoss TS, JBoss Messaging, JCA, JNDI,
    EJB, JPA, local TX
    datasource/connection pool, EJB
    Security JNDI configuration:
    overrides Tomcat's JNDI
    implementation by layering itself on
    top of Tomcat's JNDI instantiation;
    Tomcat JNDI is read-only
  • Deployment types: JAR only
  • Management support: No
  • Support: limited, built on top JBoss Microcontainer that is the core
    of JBoss 5.0, supported option for
    Seam on Tomcat
  • JMS Provider: same configuration files as JBoss 5.x. JMS is configured
    in hsqldb-persistence-service.xml,
    and this can be adjusted to work with
    other databases
  • XA Connection Pool: No
  • EJB Timer Services: No
  • *Persistence Providers:*Hibernate
  • Limitations: no remote JMS; local interfaces only; local-only JBoss
    JNDI implementation
  • Documentation: limited
  • EJB 3.1: No

Apache OpenEJB 3.1

  • License: Apache License
  • *Java:*JDK 5.0 or 6.0
  • Tomcat integration:Yes, modifications to startup shell script
  • *Tomcat Versions:*Tomcat 6.x or 5.5
  • *Deployment to Tomcat:*war file
  • *List of features:*EJB 3.0 and 3.1, JTA, JAX-WS, JMS, J2EE Connectors, JPA, JNDI. OpenEJB uses several other open source frameworks such as OpenJPA to provide JPA and CMP persistence, ActiveMQ for JMS/MDB, and Apache CXF for JAX-WS features.
  • *JNDI configuration:*flexible JNDI naming schema
  • *Deployment types:*Collapsed EAR (war), JAR
  • Management support: ActiveMQ JMX mbeans
  • *Support:*Community support, mailing lists and forums, EJB container for Apache Geronimo
  • *JMS Provider:*ActiveMQ
  • *XA Connection Pool:*Yes
  • *EJB Timer Services:*Yes
  • *Persistence Providers:*OpenJPA, Hibernate
  • *Limitations:*OpenEJB uses OpenJPA to provide JPA and CMP persistence, and OpenJPA currently requires a JavaAgent to function properly.
  • *Documentation:*limited but better than others
  • *EJB 3.1:*partial

EasyBeans

  • *License:*LGPL
  • *Java:*JDK 5.0 or 6.0
  • Tomcat integration: Yes
  • *Tomcat Versions:*Tomcat 6.x or 5.5
  • *Deployment to Tomcat:*war file
  • *List of features:*EJB 3.0, JAX-WS, OSGi support
  • JNDI configuration:?
  • *Deployment types:*JAR
  • Management support:?
  • *Support:*Community support and professional support, mailing list, JIRA, EJB container for JOnAS application server
  • JMS Provider:?
  • XA Connection Pool:?
  • *EJB Timer Services:*Yes
  • *Persistence Providers:*OpenJPA, Hibernate, TopLink, EclipseLink
  • Limitations:
  • *Documentation:*limited
  • EJB 3.1: No
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文