2011-04-15 51 views
8

任何人都可以告诉我,目前是否有可能通过Jetty将部分Java EE 6 Web Profile“粘合在一起”? 我发现了很多关于将独立的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容器中获得类似的工作有多难,以及两种环境在复杂性,性能,大小,部署速度,硬件资源消耗等方面的比较。Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2堆栈?

+0

@AmanicA在其设置的文件,感谢编辑的标签,希望这将带来更多的关注的帖子。 – 2011-04-30 23:51:54

+1

这就是这个想法是:) – AmanicA 2011-05-02 14:21:50

+2

我们正在OpenEJB项目中验证Apache TomEE(在下面提到)。完成之后,我们希望做一个Jetty堆栈,并将其称为Apache JetSet。它实际上已经开始了,如果你想破解它并且成为把它带到世界的一部分,太好了!多多益善! :)只需在[email protected]列表中打个招呼吧。大多数项目只是开发人员在工作中使用这些东西,并且正在创建他们想要使用的平台。实际上,我们的目标是将Jetty版本完全嵌入,与Tomcat版本不同。 – 2011-05-03 19:26:00

回答

10

我想把它描述为仍处于早期阶段,但这里是我们的所见所闻远:

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

注意,阿帕奇TomEE住在类似的路径,即 '装配/ OpenEJB的-tomcat的'。计划是调用Jetty版本的Apache JetSet并使其完全可嵌入。大多数提交人目前正致力于让Apache TomEE正式获得Java EE 6 Web Profile认证。我想描述这项工作将处于后期阶段。我们在Amazon EC2中有一个非常棒的设置,可以使用100个EC2 t1.micro专题实例针对TomEE运行Web配置文件TCK。这很漂亮。与Apache和Oracle的TCK协议不允许我们公开分享访问权限。但是,任何Apache提交者都可以签署NDA来获得访问权限。

好的,所以我提到了关于TomEE的所有内容,因为这个计划是我们完成Tomcat版本后,再次用Jetty(JetSet)完成的。例如,我们中的许多提交者,我自己和Jonathan Gallimore,实际上都比较偏爱Jetty。但是随着Tomcat集成代码的进一步发展和更多的用户,我们决定首先完成那一个。有大量的工作不是Tomcat特有的,我们可以在Jetty版本中利用;合法访问TCK,让代码运行的代码堆栈,使代码自动运行的代码堆栈越多,以及大量通用的,并非特定于Tomcat的集成位。所有这些都说明了,没有理由让其他人不得不等待在Jetty版本上工作,因为我们大多数人仍然在完成Tomcat版本。 Apache项目应该被视为一起工作的个人,而不是Oracle,Redhat或VMWare等公司。这可以是好的也可以是坏的。好的部分是,如果你或其他人想要破解Jetty版本,你现在就可以做到这一点。你必须提交补丁一段时间直到你获得提交,但让其他人执行实际的提交命令并不是那么糟糕。如果你从小开始并保持活跃并开放,通常很容易获得提交。快速获取补丁的关键是稳定的小到中等大小的补丁。在我看来,任何向前或向后的步骤都是一个很好的补丁。只要人们可以看到你要去哪里就够了。当然,这比一个大的补丁方式更敏捷,并且允许所有真正有趣和协作的魔法一路发生。

一些线程将是很好的地方说你好。第一步就是打个招呼。没有必要有码在手谈的开发列表或认真对待:

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

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堆栈。

此外,未在Tomcat 7上测试Open EJB。所以如果你走这条路,你必须留在Tomcat 6中。

+0

很酷。我会检查TomTom。除了Open EJB,我还发现了一些对EasyBeans的引用。 Spring + AOP Transactions是堆栈的一个很好的选择。 – 2011-04-27 13:57:37

+0

无论如何,我只是想知道如何将替代的Java EE 6 Web Profile堆栈放在一起,并且在转换时间,容器开销,性能等方面比较GlassFish。我一直是码头开发环境。 – 2011-04-27 14:09:30

2

OpenEjb尚未发布支持JPA2的版本,尽管它们的开发版本支持JPA2精美的AFAIK。 我在Jetty6中使用嵌入式OpenEjb,因为我无法让我的应用程序在较新的码头工作。我认为目前正在开展一项工作,以便像TomEE那样与Jetty紧密集成,但这可能会有些失误。