0

我一直在计划使用 Hibernate 来处理我将部署到 Oracle GlassFish Server (OGS) 的应用程序的 ORM。我还想利用一些我非常喜欢的 Bitronix (JTA impl) 提供的功能。在我担心我将无法使用 Hibernate 或 Bitronix 之前从未使用过 OGS,因为 OGS 具有(预安装的)JPA 和 JTA(以及其他)的默认实现。

这是真的?如果我走 OGS 路线,我会坚持使用容器附带的 JPA/JTA 实现吗?所有符合 Java EE 的容器都是这样吗?

是否有解决方法(重新配置类路径、XML/PROPERTIES 文件等)?提前致谢!

4

2 回答 2

1

据我所知,大多数应用程序服务器的类加载器可以配置(对于部署在它们上的每个应用程序)首先使用应用程序服务器的库(主要是默认行为)或应用程序的库。

我使用 Weblogic,在其自定义部署描述符中有一个 XML 标记,使应用程序的库(部署在 WAR 文件或 EAR 文件中)比应用程序服务器的库具有更高的优先级。

pn 很明显,您不能在 GlassFish 控制台中配置 JTA 实现。

pn 你不能在你的 persistence.xml 文件中指定 JPA 提供者吗?

于 2012-07-09T22:50:26.307 回答
0

这不是一个好主意。交换核心模块通常是一种风险。大多数核心技术都是紧密集成的,不能轻易切换。如果所需的供应商有其他供应商的支持和粘合代码,那么你很幸运。在 OGS 的情况下,您必须绑定到 EclipseLink (JPA RI) 或 Hibernate(一些更新模块,包括可用的胶水代码)。随您的应用程序一起运送这些东西可能(在最坏的情况下)会导致奇怪的类加载错误。在此处查看我的想法和 JSF 示例:http ://blog.eisele.net/2012/07/upgrading-mojarra-in-glassfish.html

于 2012-07-12T05:10:11.317 回答