在各种客户端站点部署小型Java EE Web应用程序的范围内,我正在寻找一种简单的应用程序服务器解决方案。
我想我记得听说有可能将Jetty用作JavaEE 6轻量级应用服务器,但我现在似乎无法在网上找到更多证据。
知道我的开发环境是JSF2 + RichFaces,CDI(Weld)和JPA 2 =>此时没有EJB),Jetty对我来说是一个可行的解决方案吗?
如果是的话,你能指点我一些文件或特定的关键词帮助我吗? 如果不是,我应该使用哪种轻量级Java EE 6应用服务器?
答案 0 :(得分:13)
Jetty是一个servlet容器,就像Tomcat一样。目前它完全不适合作为Java EE 6应用程序服务器,因为该堆栈中的servlet容器的核心要求是Servlet 3.0容器。
Jetty 7,最新的稳定版本,仍然是Servlet 2.5。目前没有人知道何时将发布支持Servlet 3.0的Jetty 8,但已经可以下载实验版本。见http://www.eclipse.org/projects/project-plan.php?projectid=rt.jetty
即使Jetty 8最终可用,你当然还需要添加JSF2(Mojarra),CDI(Weld)和JPA2(Hibernate)。
目前轻量级的替代品是Glassfish V3(尤其是Web Profile版本)。这个重量为47MB,为您提供完整的网络个人资料。 Glassfish在现代系统上启动大约一秒钟,在旧系统上启动大概是2或3秒。内存开销很小。
另一种选择是Caucho Resin。距离Java EE 6 Web Profile认证(参见http://caucho.com/resin-4.0/changes/resin-4.0.14.xtp)仅一英寸,并且出于所有实际目的,它已经完全可用作Java EE 6应用程序服务器。虽然我没有亲自使用Resin,但轻量级似乎是他们的首要任务。 (请注意'轻量级'是一个模糊而且有争议的术语)
最后,你可以给JBoss AS 6一个旋转。很少有人会称JBoss AS为“轻量级”(快速硬件上的启动时间至少为12秒,下载大小为181MB),但它的免费和开源,并且根据您对轻量级的定义,这些数字可能“足够好”
答案 1 :(得分:0)
我非常满意与您的解决方案非常相似但使用Spring 3而不是CDI。它几乎是一样的。所有东西都捆绑在WAR中,开发mvn jetty:run
就足够了。无需本地应用服务器。
但是我确信你可以在WAR中嵌入Weld CDI实现。我仍然更喜欢“真正的”CDI JEE 6堆栈或Spring。