gpt4 book ai didi

java - 在 Weblogic12 上使用 JPA2.1 与 Hibernate 5 : java. lang.NoClassDefFoundError : Could not initialize class org. hibernate.jpa.HibernatePersistenceProvider

转载 作者:行者123 更新时间:2023-12-01 01:03:26 25 4
gpt4 key购买 nike

我对尝试将 JPA 2.1 PersistenceManager 与 Hibernate 5 一起使用的简单任务感到非常沮丧。

我打包了一个使用 weblogic ant 任务 jwsc (weblogic.wsee.tools.anttasks.JwscTask) 构建的简单 Web 服务
但是在部署时我得到了这个NoClassDefFoundError :

[wldeploy] [BasicOperation.execute():472] : Initiating deploy operation for app, import2, on targets:
[wldeploy] [BasicOperation.execute():474] : myserver
[wldeploy] Task 0 initiated: [Deployer:149026]deploy application import2 on myserver.
[wldeploy] dumping Exception stack
[wldeploy] Task 0 failed: [Deployer:149026]deploy application import2 on myserver.
[wldeploy] Target state: deploy failed on Server myserver
[wldeploy] java.lang.NoClassDefFoundError: Could not initialize class org.hibernate.jpa.HibernatePersistenceProvider
[wldeploy] at java.lang.Class.forName0(Native Method)
[wldeploy] at java.lang.Class.forName(Class.java:348)
[wldeploy] at weblogic.persistence.BasePersistenceUnitInfo.getPersistenceProvider(BasePersistenceUnitInfo.java:441)
[wldeploy] at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:461)
[wldeploy] at weblogic.persistence.BasePersistenceUnitInfo.initializeEntityManagerFactory(BasePersistenceUnitInfo.java:454)
[wldeploy] at weblogic.persistence.BasePersistenceUnitInfo.init(BasePersistenceUnitInfo.java:141)

org.hibernate.jpa.HibernatePersistenceProvider 类在 hibernate-entitymanager-5.0.4.Final.jar 中提供。

我的 import2.war 确实包含这个 jar
WEB-INF/lib 以及其他东西:
hibernate-commons-annotations-5.0.0.Final.jar
hibernate-core-5.0.4.Final.jar
hibernate-entitymanager-5.0.4.Final.jar
hibernate-java8-5.0.4.Final.jar
hibernate-jpa-2.1-api-1.0.0.Final.jar

作为记录,这是我的persistence.xml,打包在我的WAR文件中
/WEB-INF/classes/META-INF/persistence.xml
<version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" version="2.1">

<persistence-unit name="AdminPersistenceUnit">
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<properties>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@//########:1521/xe"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.username" value="#########"/>
<property name="hibernate.connection.password" value="#########"/>
<property name="hibernate.archive.autodetection" value="class"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="hbm2ddl.auto" value="update"/>
</properties>
</persistence-unit>
</persistence>

最后,这里是我使用 entityManager 的地方:
public class AdminDatabaseWebservice {
@PersistenceContext(name = "AdminPersistenceUnit")
protected EntityManager entityManager;
}

任何帮助将不胜感激!

最佳答案

您可以尝试以下方法。

public class AdminDatabaseWebservice {

@PersistenceUnit(unitName = "AdminPersistenceUnit")
private EntityManagerFactory entityManagerFactory;
.....

创建 entityManager使用 entityManagerFactory .
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.createQuery("from Entity").getResultList();

希望这可以帮助。

关于java - 在 Weblogic12 上使用 JPA2.1 与 Hibernate 5 : java. lang.NoClassDefFoundError : Could not initialize class org. hibernate.jpa.HibernatePersistenceProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34061059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com