我们这几天一直在努力,我们很难过。这应该是使用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>
我们也认为这可能是一个添加库问题或类似的东西。任何帮助深表感谢。感谢
答案 0 :(得分:3)
您的持久性单元名称错误。使用xml中的那个(即用<persistence-unit name="..."
定义的那个):
emf = Persistence.createEntityManagerFactory("JPAExamplePU");