Tomcat支持哪些技术?

meh*_*ost 9 java tomcat java-ee

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

我知道Tomcat是一个JSP/Servlet容器,但我在Web上看到有关"JSF和Tomcat","Hibernate和Tomcat"等的文章.

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

Bal*_*usC 17

Tomcat作为一个准系统servletcontainer确实只提供了JSP,Servlet,ELWS API.但是,您可以自己提供JSF,JSTL,CDI,JPA,Hibernate,Spring等,以及文件/WEB-INF/lib夹中的JAR文件的Web应用程序以及必要时的一些配置文件.

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

也可以看看:


Pas*_*ent 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等.?

您可以通过将它们打包在应用程序中来使用其中一些(本文有一个很好的总结):

  • 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)进行比较:没有EJB 3.1 Lite,没有JTA 1.1,没有无描述符的应用程序等.

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