【问题标题】:Can Jetty be used as a Java EE lightweight application server?Jetty 可以用作 Java EE 轻量级应用服务器吗?
【发布时间】:2011-06-21 16:31:45
【问题描述】:

在各种客户端站点部署小型 Java EE Web 应用程序的范围内,我正在寻找一种简单的应用程序服务器解决方案。

我想我记得听说可以将 Jetty 用作 JavaEE 6 轻量级应用程序服务器,但我现在似乎无法在网络上找到更多证据。

知道我的开发环境是 JSF2 + RichFaces、CDI (Weld) 和 JPA 2 => 目前没有 EJB),Jetty 是否适合我?

如果是,您能否指出一些对我有帮助的文档或特定关键字? 如果不是,我应该使用其他什么轻量级 Java EE 6 应用服务器?

【问题讨论】:

    标签: jpa jakarta-ee richfaces jsf-2 jetty


    【解决方案1】:

    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 在现代系统上大约在 1 秒内启动,而在旧系统上大约需要 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),但它是免费和开源的,并且根据您对轻量级的定义,这些数字可能“足够好” .

    【讨论】:

    • 我刚刚成功地将一个 WAR 部署到 Resin 中,这非常简单。树脂的重量为 100MB。 (与我部署的 WAR 大小相同...)Glassfish 现在是 4.0,Jetty 是 9 - 现在不确定这是否会改变。
    • 正如 CrazyPyro 所说,Jetty 现在是 9.1。 9.1 版支持 Servlet 3.1 和 JSP 2.3。请参阅en.wikipedia.org/wiki/Jetty_(web_server)#History 了解更多信息。
    【解决方案2】:

    我对与您的解决方案非常相似但使用 Spring 3 而不是 CDI 感到非常满意。这几乎是一样的。一切都捆绑在 WAR 中,用于开发 mvn jetty:run 就足够了。无需本地应用服务器。

    不过,我确信您可以在 WAR 中嵌入 Weld CDI 实现。我还是更喜欢“真正的”CDI JEE 6 堆栈或 Spring。

    【讨论】:

      猜你喜欢
      • 2016-10-07
      • 2014-06-07
      • 2011-02-14
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 2015-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多