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

37

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

我该如何在 Tomcat 上部署它?


1
请注意,Tomcat是最稳定和轻量级的服务器之一。对于小到中等规模的应用程序,您可能不需要EJB3.1,尽管它很轻便。因为有些团队开发人员专精于Java服务器技术而没有使用EJB,并且生产环境在Tomcat上,所以没有太多有效的理由转移到Glassfish或其他Java EE6服务器。我个人喜欢Glassfish3.x,但它不能满足某些实时应用程序的需求。 - Sree Rama
很好,你有在Glassfish和EJB3.1上工作过。 - Sree Rama
@BalusC 好的,看到这个已经很多次了,我开始觉得这是正常的。 - Geoffroy
4个回答

56
你可以这样做,但这不是预期的方式。Tomcat 是一个 Servlet 容器,只有应用服务器才需要支持 EJB。
集成 EJB 支持的 Tomcat 基本上是 TomEE。用 TomEE 替换 Tomcat 即可。你仍然可以使用 IDE 中的 Tomcat 服务器插件来管理 TomEE。

13
向读者更新。提到的“OpenEJB/Tomcat”已经演变成了Apache TomEE,它现在像JBoss和GlassFish一样获得了Java EE 6认证。 - David Blevins
5
这是一个将TomEE添加到当前Tomcat实例中,只需部署war文件的链接,ja!:Tomcat+TomEE - Sergio

12

6

你可以在Tomcat上使用EJB,但这会有些困难。查看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等;-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接