Java EE应用程序服务器提供了tomcat的所有功能,那么为什么要使用tomcat(例如代替glassfish,因为它是官方的)?
特别是当需要Java EE功能(如JPA,JAX-RS,JSF)时,因此需要将更多库与应用程序打包在一起,而符合EE标准的应用程序服务器是否可以提供开箱即用的功能?
Dav*_*ins 77
我们心中的问题以及我们创建TomEE的全部原因是,人们为什么要选择?
10年后它仍然出现,人们互相争论哪个更好,为什么.
这是简短形式的数学:
太好了,我们在那里中途,但人们仍在争论"Tomcat 或 JavaEE".解决方案很明确,Tomcat需要通过Java EE认证.创建Web配置文件是为了实现这一点.
太棒了,现在我们在那里.
这一切都发生在过去的两年里.事情变了.
如果你想要Tomcat和JavaEE,你可以拥有它.
人们很少使用普通的Tomcat.他们总是添加大量额外的东西,比如webframework,some orm,一些DI框架等等.
你可以使用Spring,但最终的结果会很大,膨胀,你将被迫进行大量的XML编程.
现代Java EE 6实现非常轻量级(TomEE和Resin只有25mb)并且包含您需要的所有内容(Web,持久性,DI).所谓的Web Profile不包含您很少需要的任何内容.现代Java EE 6服务器在一两秒内启动,与裸Tomcat处于同一联盟,但它们实际上每天都提供您需要的工具.
大多数 Java EE 应用服务器体积庞大,带有许多不需要的功能,并且开发/测试周期非常缓慢(只需查看 java rebel 生产力报告)。如果您确实需要一些 Java EE 功能,那么您应该使用它,但大多数情况下您可以拥有相同的基本功能(本质上是 servlet 容器,您可以将大部分 Java EE 技术放在 tomcat 之上,例如轻量级ejb 容器等)与 tomcat 或任何其他轻量级 servlet 容器。
还要记住,您可以在应用程序服务器之外使用 JPA、JSF、JAX-RS。
TL;DR: Java EE 应用程序服务器显然很慢,不要即时重新加载类并强制执行非常烦人的代码/部署/测试周期(想想从 20 秒到 8 分钟的任何地方来测试 Java 代码中的一些更改)。大多数人只需要基本功能(本质上是 servlet 容器)。
以下是关于 2011 年重新部署时间的报告:http: //zeroturnaround.com/java-ee-productivity-report-2011/#redeploy_times