我阅读了很多关于它支持整个Java EE 6规范的GlassFish应用服务器。但Tomcat支持哪些?
我知道Tomcat是一个JSP / Servlet容器,但我在网上看到有关“JSF和Tomcat”,“Hibernate和Tomcat”等等的文章。
tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?
答案 0 :(得分:16)
Tomcat作为一个准系统servletcontainer确实只提供了JSP,Servlet,EL和WS API。但是,您可以自己提供JSF,JSTL,CDI,JPA,Hibernate,Spring等自己的网络应用程序/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随附:
虽然GlassFish的“web”部分实现了:
tomcat可以使用这些技术:EJB,JSF,JPA,Hibernate,Spring等。?
您可以通过将它们打包在应用程序中来使用其中一些(this article有一个很好的摘要):
但是让我坚持:无论你添加到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