我一直在计划使用Hibernate来处理我将部署到Oracle GlassFish Server(OGS)的应用程序的ORM。我还想利用Bitronix(JTA impl)提供的一些我非常喜欢的功能。在我担心我无法使用Hibernate或Bitronix之前从未使用过OGS,因为OGS已经(预安装)了JPA和JTA(以及其他)的默认实现。
这是真的吗?如果我去OGS路线,我坚持使用容器附带的JPA / JTA实现?这适用于所有符合Java EE标准的容器吗?
是否有解决方法(重新配置类路径,XML / PROPERTIES文件等)?提前谢谢!
答案 0 :(得分:1)
据我所知,大多数应用程序服务器的类加载器可以配置(对于部署在它们上的每个应用程序),以首先使用应用程序服务器的库(主要是默认行为)或应用程序的库。
我使用Weblogic,并在其自定义部署描述符中有一个XML标记,使应用程序的库(部署在WAR文件或EAR文件中)比应用程序服务器的库具有更高的优先级。
p.n。很明显,您无法在GlassFish控制台中配置JTA实现。
p.n。你不能在persistence.xml文件中指定JPA提供程序吗?
答案 1 :(得分:0)
这不是一个好主意。交换核心模块通常是一种风险。大多数核心技术紧密集成,无法轻松切换。如果所需的供应商有其他提供商的支持和胶水代码,那么您很幸运。 在OGS的情况下,您将被绑定到EclipseLink(JPA RI)或Hibernate(一些更新模块,包括可用的胶水代码)。运送你的应用程序的东西可能(在最坏的情况下)导致奇怪的类加载错误。 请在此处查看我的想法和JSF示例:http://blog.eisele.net/2012/07/upgrading-mojarra-in-glassfish.html