实例化持久性提供程序类java.lang.ClassNotFoundException时出错:org.hibernate.ejb.HibernatePersistence

时间:2018-05-15 17:54:14

标签: java-8 jpa-2.0 ejb-3.0 weblogic12c

在Weblogic:12.2.1上部署EJB应用程序时,我面临异常:

"实例化persistence Provider类org.hibernate.ejb.HibernatePersistence of PersistenceUnit entityManager时出错:java.lang.ClassNotFoundException:org.hibernate.ejb.HibernatePersistence"

我在persistence.xml中有以下配置来指定持久性提供程序

<persistence-unit name="entityManager">
    <!-- Use Hibernate persistency -->  
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
weblogic-application.xml

中的

及以下

<prefer-application-packages>
    <package-name>antlr.*</package-name>
    <package-name>javax.persistence.*</package-name>
</prefer-application-packages>

我按照以下链接检查WL中设置的默认持久性提供程序,即TopLink。

https://docs.oracle.com/middleware/1213/wls/WLACH/taskhelp/domainconfig/ConfigureDefaultJPAProvider.html

此外,尝试使用hibernate-jpa-api.jar,slf4j-api.jar通过以下配置在setDomainEnv.cmd中设置classpath valriables并重新启动服务器。仍然面临同样的问题。

set EXT_PRE_CLASSPATH=C:\Projects\...\lib\hibernate\hibernate-jpa-api.jar;C:\Projects\...\lib\hibernate\slf4j-api.jar

1 个答案:

答案 0 :(得分:1)

将hibernate jar添加到weblogic域的lib文件夹中可以正常工作,即hibernate.jar,hibernate-api.jar,javax.persistence.jar,com.oracle.jpa2support_ ar以及你在setDomainEnv.cmd的类路径

来源: - https://docs.oracle.com/cd/E12839_01/web.1111/e13706/classloading.htm#WLPRG324https://community.oracle.com/thread/1065416