异常javax.persistence.PersistenceException:没有EntityManager的持久性提供程序

时间:2010-11-11 04:19:21

标签: jpa persistence toplink

我们这几天一直在努力,我们很难过。这应该是使用TopLink的简单方法。我们正在努力让这个在我们真正的网络应用程序之前工作。这是我们得到的以下例外:

  

线程“main”中的异常javax.persistence.PersistenceException:没有名为pu1的EntityManager的持久性提供程序:
  以下提供者:
  oracle.toplink.essentials.PersistenceProvider
  oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
  返回null到createEntityManagerFactory           在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
          在javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83)
          在client.Client.main(Client.java:45)
  Java结果:1

从我们的emf驱动程序类执行此行后会发生这种情况:

emf = Persistence.createEntityManagerFactory("pu1");

我假设问题出在我们的persistence.xml文件中(位于正确的文件夹(WEB-INF / classes / META-INF)中。)netbeans也为我们生成了xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="JPAExamplePU" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>SomeDB</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="toplink.ddl-generation" value="drop-and-create-tables"/>
</properties>
</persistence-unit>
</persistence>

我们也认为这可能是一个添加库问题或类似的东西。任何帮助深表感谢。感谢

1 个答案:

答案 0 :(得分:3)

您的持久性单元名称错误。使用xml中的那个(即用<persistence-unit name="..."定义的那个):

emf = Persistence.createEntityManagerFactory("JPAExamplePU");