koe*_*sle 5 java hibernate jpa weblogic12c
我对尝试将 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)
Run Code Online (Sandbox Code Playgroud)
hibernate-entitymanager-5.0.4.Final.jar 中提供了 org.hibernate.jpa.HibernatePersistenceProvider 类。
我的 import2.war 确实在 WEB-INF/lib 中包含这个 jar 以及其他内容:
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
Run Code Online (Sandbox Code Playgroud)
作为记录,这里是我的 persistence.xml,打包在 /WEB-INF/classes/META-INF/persistence.xml 中的 WAR 文件中
<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>
Run Code Online (Sandbox Code Playgroud)
最后,这是我使用entityManager的地方:
public class AdminDatabaseWebservice {
@PersistenceContext(name = "AdminPersistenceUnit")
protected EntityManager entityManager;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
您可以尝试以下操作吗?
public class AdminDatabaseWebservice {
@PersistenceUnit(unitName = "AdminPersistenceUnit")
private EntityManagerFactory entityManagerFactory;
.....
Run Code Online (Sandbox Code Playgroud)
创建entityManager使用entityManagerFactory.
EntityManager entityManager = entityManagerFactory.createEntityManager();
entityManager.createQuery("from Entity").getResultList();
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1083 次 |
| 最近记录: |