如何解决Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2堆栈?
| 谁能告诉我当前是否可以通过Jetty“粘合在一起”部分Java EE 6 Web Profile? 我已经找到了很多有关将独立的EJB 3容器,JTA提供程序等与旧版Jetty版本集成的文章,因此,如果可以使它们全部一起工作,我会很痛苦。 我想组装一个Servlet 3.0 + CDI + EJB 3.1 + JTA(如果需要,我真正想要的只是声明式事务管理)+在Jetty 8上的JPA 2环境(如果没有可用的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竞价型实例针对TomEE运行Web配置文件TCK。很漂亮。与Apache和Oracle的TCK协议不允许我们公开共享访问权限。但是,任何Apache提交者都可以签署NDA以获得访问权限。
好的,所以我提到了有关TomEE的所有内容,因为一旦我们完成了Tomcat版本的计划,就可以通过Jetty(JetSet)再次完成该计划。我们中的许多提交者,例如我本人和乔纳森·加里莫尔,实际上都非常喜欢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
,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
据码头我不确定。对于JavaEE6容器(AFAIK)之外的EJB,OpenEJB是您的唯一选择,我不确定Jetty是否已对此进行100%的测试。对于CDI,您始终可以使用Seam之类的东西。
在我看来,我相信Spring框架将是Jetty容器的最佳选择(尽管这只是我的观点)。根据我的经验,在尝试使Tomcat与Open EJB一起使用之后,Spring的设置要容易得多。
您还必须记住,此时Open EJB尚未实现整个EJB 3.1堆栈。
同样,Open EJB也未在Tomcat 7上进行测试。因此,如果您选择那条路线,则必须继续使用Tomcat 6。
,尽管OpenEjb的开发版本支持JPA2精细AFAIK,但尚未发布具有JPA2支持的版本。
我正在Jetty6中使用嵌入式OpenEjb,因为我的应用程序还无法在较新的码头工作。我认为正在进行一些工作来使OpenEJB与Tomty像TomEE紧密集成,但这可能还有一些距离。
,Geronimo是运行在Jetty之上的完整J2EE堆栈。
关于其设置的文档位于https://cwiki.apache.org/GMOxDOC30/configuring-virtual-host-in-jetty.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。