Spring Boot Web项目在部署到web logic时, 发生异常: java.lang.ClassNotFoundException: org.hibernate.ejb.Hibern...

错误信息如下:

Error is: "weblogic.application.ModuleException: weblogic.application.naming.EnvironmentException: Error processing persistence unit pro_persistence of module xxx.war: Error instantiating the Persistence Provider class org.hibernate.ejb.HibernatePersistence of the PersistenceUnit pro_persistence: java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence"

weblogic.application.ModuleException: weblogic.application.naming.EnvironmentException: Error processing persistence unit pro_persistence of module xxx.war: Error instantiating the Persistence Provider class org.hibernate.ejb.HibernatePersistence of the PersistenceUnit pro_persistence: java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence

at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)

at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)

at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192)

at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187)

at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:83)

Truncated. see log file for complete stacktrace

Caused By: weblogic.application.naming.EnvironmentException: Error processing persistence unit pro_persistence of module xxx.war: Error instantiating the Persistence Provider class org.hibernate.ejb.HibernatePersistence of the PersistenceUnit pro_persistence: java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence

at weblogic.persistence.BasePersistenceUnitInfo.getPersistenceProvider(BasePersistenceUnitInfo.java:604)

at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:613)

at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnitInfo.java:202)

at weblogic.persistence.BaseJPAIntegrationProvider.createPersistenceUnitInfo(BaseJPAIntegrationProvider.java:54)

at weblogic.persistence.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:422)

Truncated. see log file for complete stacktrace>


解决方法:

首先org.hibernate.ejb.HibernatePersistence在Hibernate里已经是@Deprecated的,所以不建议使用,

1. 如果你用的Hibernate是5.2之前的版本,那很有可能是你缺少相应的jar package, 所以只要在pom.xml里添加相应的dependency,如下:

<dependecny><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId>  <version>{hibernate.version}</version> </dependency>


2. 上面提到过org.hibernate.ejb.HibernatePersistence在Hibernate里已经是@Deprecated了,所以建议使用org.hibernate.jpa.HibernatePersistenceProvider代替。更改项目中相应的persistence.xml文件,如下:

<persistence version="2.0"  xmlns="http://java.sun.com/xml/ns/persistence"            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">

<persistence-unit name="pro_persistence" transaction type="RESOURCE_LOCAL"><provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>                <mapping-file>...</mapping-file>                                                            <class>*.*</class>                                                                                </persistence-unit>                                                                                </persistence>

补充:

Hibernate从5.2开始已经是一个空白的jar package了,原来其中的Hibernate's EJB部分已经被一处,而Hibernate's JPA部分已经被移到了hibernate-core.jar package中了。 hibernate-entity-manger-5.2.1.jar抓图如下:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • org.springframework.beans.factory.UnsatisfiedDependencyEx...
    Feng_Sir阅读 15,484评论 3 3
  • 一. Java基础部分.................................................
    wy_sure阅读 9,291评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,212评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,088评论 19 139
  • 你来了 有些人却已不在 谁来把老屋的大门打开 无论多大金额都可在网上转账 但回家路上欢喜的心跳 在紧握玫瑰的指尖上...
    瑶人蓝峰阅读 3,161评论 4 8

友情链接更多精彩内容