2012-07-09 37 views
0

的Java EE實現我一直在打算使用Hibernate來處理的應用程序,我將部署到Oracle GlassFish應用服務器(OGS)的ORM。我還想利用Bitronix(JTA impl)提供的一些我非常喜歡的功能。由於OGS爲JPA和JTA(及其他)提供了(預安裝的)默認實現,因此我擔心OGS不會使用Hibernate或Bitronix。換出默認在GlassFish

這是真的嗎?如果我走OGS路線,我堅持使用容器的JPA/JTA實現嗎?這是否適用於所有符合Java EE標準的容器?

有一種解決方法,以這種(重新配置類路徑,XML/properties文件等)?提前致謝!

回答

0

這不是一個好主意。一般來說,交換核心模塊是一個風險。大多數核心技術緊密集成,無法輕鬆切換。如果所需的供應商爲其他供應商提供支持和膠合代碼,那麼您很幸運。 在OGS的情況下,你被綁定到EclipseLink(JPA RI)或者Hibernate(一些更新模塊包括可用的膠水代碼)。運送你的應用程序的東西可能(在最壞的情況下)導致奇怪的類加載錯誤。 看到我的想法和一個JSF示例:http://blog.eisele.net/2012/07/upgrading-mojarra-in-glassfish.html

1

據我所知,大多數應用服務器的類加載器可以配置(對於上部署的每個應用程序),以第一次使用應用程序服務器的庫(大部分是默認行爲)或應用程序的庫。

我使用Weblogic的工作,並在其定製的部署描述符中有一個XML標籤,使應用程序的庫(被部署在WAR文件或EAR文件中)比應用服務器的庫更優先。

P.N.很明顯,您無法在GlassFish控制檯中配置您的JTA實現。

P.N.你不能在你的persistence.xml文件中指定JPA提供者嗎?

+0

感謝@Amir(+1) - 出於好奇,爲什麼不能在OGS中配置您的JTA實現? – IAmYourFaja 2012-07-09 22:53:49

+0

那麼你正在使用一個自定義的JTA實現而不是容器的。我不確定,但我認爲在OGS控制檯中只是配置其默認的JTA。 – 2012-07-10 17:46:59