在Weblogic 12.1中将JPA2 Provider作为Hibernate

时间:2014-01-08 14:10:11

标签: hibernate jpa-2.0 weblogic12c

当我们尝试在weblogic 12.1中使用JPA2 Provider作为Hibernate部署我们的应用程序时,我得到了以下异常

   Caused By: java.lang.ClassCastException: org.eclipse.persistence.jpa.PersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider

    at javax.persistence.Persistence$1.isLoaded(Persistence.java:92)

    at org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:57)

我在weblogic.xml中有以下条目:

        <package-name>org.hibernate.*</package-name>

        <package-name>javax.persistence.*</package-name>

    </prefer-application-packages>

以及weblogic服务器commEnv.cmd(common / bin)中的预类路径设置。

 set PRE_CLASSPATH=%MW_HOME%\modules\javax.persistence_2.0.0.0_2-0.jar;

应用程序在weblogic 11g中运行正常,具有以下前级路径设置。

PRE_CLASSPATH =“/应用/甲骨文/中间件/模块/ javax.persistence_1.0.0.0_2-0-0.jar:/apps/Oracle/Middleware/modules/com.oracle.jpa2support_1.0.0.0_2-0。罐“

有添加jar com.oracle.jpa2support_1.0.0.0_2-0.jar。 weblogic 12.1模块目录中缺少此jar。

有人可以建议如何解决weblogic 12.1中的持久性提供程序冲突问题吗?

Hibernate Jar版本:hibernate-core-4.2.0.Final.jar,hibernate-jpa-2.0-api-1.0.1.Final.jar,hibernate-validator-4.3.1.Final.jar

1 个答案:

答案 0 :(得分:2)

从weblogic.xml

中删除以下包后,它有效
 <package-name>javax.persistence.*</package-name>

12c

也不需要PRE_CLASSPATH设置