在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。
此外,尝试使用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
答案 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#WLPRG324 和https://community.oracle.com/thread/1065416