如何在 Tomcat 上部署基于 EJB 的应用程序

Posted

技术标签:

【中文标题】如何在 Tomcat 上部署基于 EJB 的应用程序【英文标题】:How to deploy EJB based application on Tomcat 【发布时间】:2011-05-17 07:51:09 【问题描述】:

我使用 EJB3 和 JSF 开发了一个小型 Java 应用程序。但我想将它部署在 Tomcat 服务器上(不是 GlassFish,也不是在 Netbeans IDE 中,它必须独立于 Netbeans)。

如何在 Tomcat 上部署它?

【问题讨论】:

另外请注意,Tomcat 是最稳定和最轻量级的服务器之一。尽管 EJB3.1 重量轻,但您可能不需要 EJB3.1 用于中小型应用程序。因为可能有团队开发人员在没有 EJB 的情况下具有 Java 服务器技术的专业知识,并且生产环境在 Tomcat 上,所以没有太多正当理由移动 Glassfish 或其他 Java EE6 服务器。作为个人,我可能喜欢 Glassfish3.x,但它不能满足某些实时应用程序的需求。 很高兴您在 Glassfish 和 EJB3.1 上工作过。 @BalusC 好吧,看了很多次,我开始觉得这很正常。 【参考方案1】:

你可以,但它不应该以这种方式发生。 Tomcat 是一个 servlet 容器,只需要应用服务器来支持 EJB。

具有集成 EJB 支持的 Tomcat 基本上是 TomEE。用 TomEE 替换 Tomcat。您可以继续使用 IDE 中的 Tomcat 服务器插件来管理 TomEE。

【讨论】:

更新给读者。上面提到的“OpenEJB/Tomcat”演变成 Apache TomEE,它现在像 JBoss 和 GlassFish 一样通过了 Java EE 6 认证。 这是将 TomEE 添加到当前 Tomcat 实例的链接,该实例只是部署了一个 war 文件,ja!:Tomcat+TomEE【参考方案2】:

使用 tomEE:http://openejb.apache.org/apache-tomee.html

它是一个带有预配置内容的 tomcat,以支持 ejb、cdi 等。

【讨论】:

【参考方案3】:

您可以将 EJB 与 Tomcat 一起使用,但这有点痛苦。查看 Bozho 的链接以获取更多信息。您应该问自己的问题:您真的需要 EJB 吗?

您可以将 Glassfish 或 JBoss 用于免费的应用服务器,该服务器具有开箱即用的 EJB 支持。

【讨论】:

【参考方案4】:

我认为询问您是否真的需要 EJB 几乎类似于询问您是否真的需要使用类。只要您只使用一点点持久性(很多应用程序都需要它),EJB bean 就会有很大的帮助。与其远古祖先不同,现代 EJB 非常轻量级且易于使用。

也就是说,正如其他人所指出的那样。 Tomcat 只是一个 Servlet 容器。它提供 Servlet 和 JSP,仅此而已。如果您想要 JSF、EJB 和 JPA(例如 Hibernate)等现代 Java 便利,您必须将它们分别添加到您的 .war(在 WEB-INF/lib 中)或 Tomcat 本身的 lib 目录中。

但是,如果您将所有这些都手动添加到 Tomcat,您也可以使用 Glassfish、JBoss AS 或 Apache Geronimo。最后一个可以看作是 Tomcat,Apache 的人已经为你添加了 JSF、EJB、JPA、JTA 等;-)

【讨论】:

以上是关于如何在 Tomcat 上部署基于 EJB 的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用EJB的JBoss工作项目无法部署在Tomcat Plume上

Tomcat热部署的实现原理

Tomcat热部署的实现原理

雷林鹏分享:EJB概述

雷林鹏分享:EJB概述

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