【问题标题】:Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 stack?码头 8 + EJB 3.1 + JTA + CDI + JPA 2 堆栈?
【发布时间】:2011-08-06 09:42:08
【问题描述】:

谁能告诉我目前是否可以通过 Jetty 将部分 Java EE 6 Web 配置文件“粘合在一起”? 我发现了很多关于将独立的 EJB 3 容器、JTA 提供程序等与旧 Jetty 版本集成的文章,所以如果我能让它们一起工作,我很想知道。 我想在 Jetty 8 上组装一个 Servlet 3.0 + CDI + EJB 3.1 + JTA(如果需要,我真正想要的只是声明性事务管理)+ JPA 2 环境(如果没有可用的 Jetty 替代品,则为 Tomcat 7)。 我的问题是:可以做到吗?有没有人设法做到这一点?有关于让 OpenEJB、Atomikos、Weld、EclipseLink 和 Jetty(或任何其他类似堆栈)一起工作的文章吗?那里有任何神奇的“做这一切” pom.xml 文件吗?

PS:是的,我知道我可以使用 GlassFish(我非常喜欢)。我只是想知道使用 Servlet 容器实现类似的工作有多难,以及这两种环境在复杂性、性能、大小、部署速度、硬件资源消耗等方面的比较。

【问题讨论】:

  • @AmanicA,感谢您编辑标签,希望这会引起更多关注。
  • 我们正在认证 OpenEJB 项目中的 Apache TomEE(如下所述)。完成后,我们希望也做一个 Jetty 堆栈并将其称为 Apache JetSet。它实际上已经开始了,如果你想破解它并成为将它推向世界的一部分,太好了!越多越好! :) 只需在 dev@openejb.apache.org 列表上打个招呼。大多数项目只是开发人员在工作中使用这些东西并正在创建他们想要使用的平台。我们实际上的目标是让 Jetty 版本完全可嵌入,这与 Tomcat 版本不同。

标签: java jetty java-ee-6 ejb-3.1 openejb


【解决方案1】:

Geronimo 是一个完整的 J2EE 堆栈,运行在 Jetty 之上。

https://cwiki.apache.org/GMOxDOC30/configuring-virtual-host-in-jetty.html 上有一个关于其设置的文档

【讨论】:

  • 找不到文档:)
【解决方案2】:

我认为这仍处于早期阶段,但这是我们目前所拥有的:

http://svn.apache.org/repos/asf/openejb/trunk/openejb3/assembly/openejb-jetty/

注意,Apache TomEE 的路径类似,即“assembly/openejb-tomcat”。计划是调用 Jetty 版本的 Apache JetSet 并让它完全可嵌入。大多数有承诺的人目前正在努力让 Apache TomEE 获得正式的 Java EE 6 Web Profile 认证。我会将这项工作描述为处于后期阶段。我们在 Amazon EC2 中有一个很好的设置,可以使用一百个 EC2 t1.micro 现货实例针对 TomEE 运行 Web 配置文件 TCK。它很甜。与 Apache 和 Oracle 的 TCK 协议不允许我们公开共享访问权限。但是,任何 Apache 提交者都可以签署 NDA 以获得访问权限。

好的,所以我提到了关于 TomEE 的所有内容,因为计划是在我们完成 Tomcat 版本后,使用 Jetty (JetSet) 重新做一遍。我们中的许多提交者,例如我自己和 Jonathan Gallimore,实际上在很大程度上更喜欢 Jetty。但由于 Tomcat 集成代码更进一步并且拥有更多用户,我们决定先完成那个。我们将能够在 Jetty 版本中利用大量非 Tomcat 特定的工作;合法地访问 TCK,使其运行的代码堆,使其自动化的代码堆,以及许多通用的而不是 Tomcat 特有的集成位。

话虽如此,其他人没有理由仅仅因为我们大多数人仍在完成 Tomcat 版本而等待开发 Jetty 版本。 Apache 项目应该被视为一起工作的个体,而不是像 Oracle、Redhat 或 VMWare 这样的公司。这可能是好的也可能是坏的。好消息是,如果您或其他任何人想要破解 Jetty 版本,您现在就可以这样做。在获得提交之前,您必须提交一段时间的补丁,但是让其他人执行实际的提交命令并没有那么糟糕。如果您从小处着手并保持活跃和开放,通常很容易获得承诺。快速获得补丁的关键是源源不断的小到中等大小的补丁。在我看来,任何向前或侧向而没有后退的步骤都是一个很好的补丁。只要人们能看到你要去哪里就足够了。当然比一个大补丁的方法更敏捷,并且允许所有真正有趣和协作的魔法在此过程中发生。

一些线程是打招呼的好地方。第 1 步只是打个招呼。无需手头有代码就可以在开发人员列表上讨论或被认真对待:

http://openejb.979440.n4.nabble.com/Jetty-Integration-td1457408.html http://openejb.979440.n4.nabble.com/Jetty-Integration-td2318962.html

【讨论】:

  • 大卫,非常感谢你,我现在会跟踪进度,一旦我找到一些空闲时间,我会尝试提交一些小补丁。干杯。
【解决方案3】:

OpenEjb 还没有发布支持 JPA2 的版本,尽管他们的开发版本支持 JPA2 Fine AFAIK。 我在 Jetty6 中使用嵌入式 OpenEjb,因为我还不能让我的应用程序在较新的码头上工作。我认为正在努力使 OpenEJB 与 TomEE 等 Jetty 紧密集成,但这可能还有一段路要走..

【讨论】:

  • 是的,我也坚持使用 Jetty (7) + Spring + Hibernate 3.5 堆栈。我也很接近 Jetty 8 路线图。我是唯一一个追求科学怪人网络资料的疯子吗?我的意思是,Java EE 6 和 Glassfish 已经出现了一段时间。我很确定会有一个神奇的 pom 文件/maven 原型用于“轻量级”网络配置文件堆栈。
  • JPA2 的状态更新。 3 月初,我们采用了 3.1.x 并将其分支并合并到主干的 JPA2 支持中。情况看起来不错,我们希望这个名为 3.2 的新分支在一两周内进行发布投票。请注意,主干现在称为 4.0。感谢蒂亚戈·维罗内齐所做的所有出色工作。另一个用户变成了提交者。
【解决方案4】:

Tomcat 在名为 TomEE(以前称为 TomTom)的服务器中实现了该堆栈。

这些是它使用的组件。

Connector    Apache Geronimo Connector
CDI  Apache OpenWebBeans
EJB  Apache OpenEJB
Javamail     Apache Geronimo JavaMail
JPA  Apache OpenJPA
JSF  Apache MyFaces
JSP  Apache Tomcat
JSTL     Apache Tomcat
JTA  Apache Geronimo Transaction
Servlet  Apache Tomcat

至于 Jetty,我不确定。 OpenEJB 是 JavaEE6 容器(AFAIK)之外的 EJB 的唯一选择,我不确定 Jetty 是否经过 100% 的测试。对于 CDI,您始终可以使用 Seam 之类的东西。

在我看来,我相信 Spring 框架将是 Jetty 容器的最佳选择(不过这只是我的看法)。根据我在尝试让 Tomcat 与 Open EJB 一起工作后的经验,Spring 的设置要容易得多。

您还必须记住,此时 Open EJB 并未实现整个 EJB 3.1 堆栈。

Open EJB 也未在 Tomcat 7 上进行测试。所以如果你走那条路,你必须留在Tomcat 6。

【讨论】:

  • 酷。我会检查 TomTom。除了 Open EJB,我还发现了一些对 EasyBeans 的引用。 Spring + AOP Transactions 是堆栈的一个很好的替代方案。
  • 无论如何,我只是想知道将一个替代的 Java EE 6 Web Profile 堆栈放在一起,看看它在周转时间、容器开销、性能等方面与 GlassFish 相比如何。我'一直是 Jetty 开发环境的忠实拥护者。
  • 感谢您指出 EasyBeans。我以前没听说过。我一定会检查出来的。实际上,我很想知道您的结果,因为从我所见,Jetty 和 Tomcat 比 Glassfish 轻得多,但它们只是 servlet 容器。我们在我的公司内部使用 Glassfish 2 和 3,但我一直在寻找在 Tomcat 中工作的方法。尤其是我做的副业。我使用 Tomcat 共享主机,因为它比 Glassfish 的 VPS 解决方案便宜很多。所以我通常坚持使用 Spring。
  • 请注意,OpenEJB 在主干中确实具有完整的 EJB 3.1 支持,只是尚未经过认证。我们希望能够在下个季度发布一些 Apache TomEE 和 Apache Geronimo 认证公告。关于 EasyBeans 的注意事项,一定要检查一下,但也要注意它也没有经过认证。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-05
  • 1970-01-01
  • 1970-01-01
  • 2014-06-11
  • 2013-08-19
  • 1970-01-01
相关资源
最近更新 更多