Tomcat支持哪些技术?

时间:2010-05-18 12:11:56

标签: java tomcat java-ee

我阅读了很多关于它支持整个Java EE 6规范的GlassFish应用服务器。但Tomcat支持哪些?

我知道Tomcat是一个JSP / Servlet容器,但我在网上看到有关“JSF和Tomcat”,“Hibernate和Tomcat”等等的文章。

tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?

5 个答案:

答案 0 :(得分:16)

Tomcat作为一个准系统servletcontainer确实只提供了JSPServletELWS API。但是,您可以自己提供JSFJSTLCDIJPAHibernateSpring等自己的网络应用程序/WEB-INF/lib文件夹中的JAR文件和必要时的一些配置文件。

EJB只是一个故事,因为你不能只是添加“一些JAR”来实现它,但实际上是的,你可以将一个EJB容器放在Tomcat之上,如果你修改它服务器核心。这基本上也是TomEE所做的。如果您打算使用Java EE,也可以考虑一下。

另见:

答案 1 :(得分:6)

  

我阅读了很多关于它支持整个Java EE 6规范的GlassFish应用服务器。但Tomcat支持哪些?

Tomcat(自Java EE 5以来不再是Servlet规范的RI)不支持开箱即用的任何 Java EE 6 API。在其最新版本中,Tomcat 6随附:

  • Servlet 2.5
  • JSP 2.1 / EL 2.1

虽然GlassFish的“web”部分实现了:

  • Java Servlet 3.0
  • JavaServer Faces 2.0
  • JavaServer Pages 2.2 /表达语言 2.2
  • JavaServer Pages标准标记库(JSTL)1.2
  

tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?

您可以通过将它们打包在应用程序中来使用其中一些(this article有一个很好的摘要):

  • EJB 3.1:不,在编写本文时没有独立的EJB 3.1容器(如果你考虑使用EJB,使用真正的Java EE服务器,Tomcat与独立的EJB容器不是等价的,尤其是来自事务管理器的观点)。
  • JSF 2.0和EL 2.2:是的,可能有些痛苦
  • CDI 1.0:是的,可能的
  • Bean验证1.0:使用JSF 2.0和JPA是可能的
  • JPA 2.0:是的,可能,但您必须自己获取EntityManager并自行管理事务(或使用像Spring这样的第三方容器)。

但是让我坚持:无论你添加到Tomcat,你都不会得到相当于Java EE 6的容器,即使我们只是与Web Profile实现(如GlassFish v3 Web Profile)进行比较:no EJB 3.1 Lite,没有JTA 1.1,没有无描述符的应用程序等。

如果您有选择,我的建议是使用GlassFish v3 Web Profile并使用Java EE 6.

答案 2 :(得分:2)

Tomcat不是EJB容器,因此您应该使用完整的JavaEE 6服务器(例如Glassfish,Websphere,Weblogic等)。

Tomcat可以使用Spring / Hibernate,因为这只需要相关的jar和配置/上下文定义。同样适用于JSF。

JPA是一个抽象规范,Hibernate(和其他人一样)是这个规范的实现,因此答案是“是的,它可以在Tomcat上实现”。

答案 3 :(得分:1)

Tomcat支持取决于它的版本:

JSTL 1.0 : Servlet 2.3 : JSP 1,2 (tomcat 4)
JSTL 1.1 : Servlet 2.4 : JSP 2.0 (tomcat 5)
JSTL 1.2 : Servlet 2.5 : JSP 2.1 (tomcat 6)

默认情况下,tomcat没有提供EJB支持已经得到了解答。 EasyBeans涵盖了这个问题。

要在tomcat6中包含JSF 1.2,有一个tutorial

编辑: 不幸的是,没有单一的依赖(/兼容)矩阵。 JPA是一种API,由i.g实施。休眠。找出哪些版本匹配应该不难。是的,它们可以与Tomcat(除了)Spring一起使用。

答案 4 :(得分:1)

我发现tomcat页面上的表很有帮助。 页面:http://tomcat.apache.org/whichversion.html

相关问题