java - jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 堆栈?

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

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

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

最佳答案

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

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 spot 实例针对 TomEE 运行网络配置文件 TCK。这很甜蜜。与 Apache 和 Oracle 的 TCK 协议(protocol)不允许我们公开共享访问权限。但是,任何 Apache 提交者都可以签署保密协议(protocol)以获得访问权限。

好的,所以我提到了关于 TomEE 的所有内容,因为计划是一旦我们完成了 Tomcat 版本,就用 Jetty (JetSet) 重新做一遍。我们中的许多提交者,例如我自己和 Jonathan Gallimore,实际上更喜欢 Jetty。但是随着 Tomcat 集成代码的深入和用户的增多,我们决定先完成那个代码。我们可以在 Jetty 版本中利用大量非 Tomcat 特有的工作;合法访问 TCK、使其运行的代码堆、使其自动化的代码堆越多,以及许多通用且不特定于 Tomcat 的集成位。

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

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

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

关于java - jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 堆栈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5678298/

相关文章:

java - 从java小程序获取正确的本地IP地址

java - Node.getNodeValue() 在 java 中返回 null

ssl - 将 Jetty 9 和 jetty.xml 与 BaseX 结合使用

jakarta-ee - 在 Java EE 企业应用程序中将业务逻辑放在哪里

java - 无法运行 arquillian 测试

java - 如何在java中缓慢 move 我的子弹?

Jetty 8 设置 "session-timeout"没有 web.xml?

jetty - 在 Java 应用程序中嵌入 jetty 并导出为 jar

java - 当您不确定单元名称时如何创建 EntityManager?

java - 事务部分提交或回滚