任何人都可以告訴我,目前是否有可能通過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堆棧?
回答
我想把它描述爲仍處於早期階段,但這裏是我們的所見所聞遠:
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
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中。
很酷。我會檢查TomTom。除了Open EJB,我還發現了一些對EasyBeans的引用。 Spring + AOP Transactions是堆棧的一個很好的選擇。 – 2011-04-27 13:57:37
無論如何,我只是想知道如何將替代的Java EE 6 Web Profile堆棧放在一起,並且在轉換時間,容器開銷,性能等方面比較GlassFish。我一直是碼頭開發環境。 – 2011-04-27 14:09:30
OpenEjb尚未發佈支持JPA2的版本,儘管它們的開發版本支持JPA2精美的AFAIK。 我在Jetty6中使用嵌入式OpenEjb,因爲我無法讓我的應用程序在較新的碼頭工作。我認爲目前正在開展一項工作,以便像TomEE那樣與Jetty緊密集成,但這可能會有些失誤。
Geronimo是運行在碼頭之上的完整的J2EE堆棧。
有上https://cwiki.apache.org/GMOxDOC30/configuring-virtual-host-in-jetty.html
- 1. Spring 3 EJB 3.1 JPA 2
- 2. CDI + JPA + EJB + JTA + JSF - 使用PostgreSQL的JBoss廚房示例?
- 3. 無法在Java EE 7堆棧上獲得Spring Data JPA + CDI
- 4. 交易錯誤JTA DATASOURCE JPA CDI
- 5. 控制EJB 3.1內的CDI啓動
- 6. JSF,CDI,EJB + JPA和事務處理
- 7. 使用JTA事務與EJB和JPA
- 8. EJB 3.1安全授權而使用CDI
- 9. Spring 3.1 WebApplicationInitializer&Embedded Jetty 8 AnnotationConfiguration
- 10. 使用JPA/JTA/JBOSS/CDI的對象不會持久
- 11. JAVA EE - EJB/CDI/JPA:異常處理
- 12. CDI和GlassFish的3.1
- 13. CDI + EJB 3 + EJB Transaction
- 14. 從EJB 2客戶端調用EJB 3.1
- 15. '沒有會話或會話關閉' 與JPA 2和EJB 3.1
- 16. 的Jboss EAP 7 CDI JTA @Transactional
- 17. JDO與Java EE 6(CDI和JTA?)
- 18. 如何使用JPA,EJB和CDI元素創建JBoss EAR項目
- 19. EJB JTA/JPA CMT事務回滾影響子事務
- 20. CDI Beans和JPA Transactions
- 21. EJB 3.1嵌入式API - 單元測試EJB + JPA實體
- 22. EJB 2.1 Vs EJB 3.1
- 23. Rails 3.1堆棧級別太深
- 24. 獨立應用程序中的JPA,EJB和JTA
- 25. EJB 3.0 - > Spring - > JPA(JTA作爲事務管理器)
- 26. EJB 3.1有狀態和CDI範圍對話
- 27. EJB與CDI查找
- 28. EJB JPA事務
- 29. JTA在異步EJB上的交易
- 30. EJB,休息,JPA的NullPointerException
@AmanicA在其設置的文件,感謝編輯的標籤,希望這將帶來更多的關注的帖子。 – 2011-04-30 23:51:54
這就是這個想法是:) – AmanicA 2011-05-02 14:21:50
我們正在OpenEJB項目中驗證Apache TomEE(在下面提到)。完成之後,我們希望做一個Jetty堆棧,並將其稱爲Apache JetSet。它實際上已經開始了,如果你想破解它並且成爲把它帶到世界的一部分,太好了!多多益善! :)只需在[email protected]列表中打個招呼吧。大多數項目只是開發人員在工作中使用這些東西,並且正在創建他們想要使用的平臺。實際上,我們的目標是將Jetty版本完全嵌入,與Tomcat版本不同。 – 2011-05-03 19:26:00