Jpa 异常javax.persistence.PersistenceException:EntityManager没有持久性提供程序
我们已经在这方面工作了好几天了,我们被难住了。这应该是一个使用TopLink的简单教程。我们正在尝试在开发真正的web应用程序之前让它工作。这是我们得到的以下例外情况: 线程“main”javax.persistence.PersistenceException中出现异常:没有名为pu1的EntityManager的持久性提供程序:Jpa 异常javax.persistence.PersistenceException:EntityManager没有持久性提供程序,jpa,persistence,toplink,Jpa,Persistence,Toplink,我们已经在这方面工作了好几天了,我们被难住了。这应该是一个使用TopLink的简单教程。我们正在尝试在开发真正的web应用程序之前让它工作。这是我们得到的以下例外情况: 线程“main”javax.persistence.PersistenceException中出现异常:没有名为pu1的EntityManager的持久性提供程序: 以下提供者: oracle.toplink.essentials.PersistenceProvider oracle.toplink.essentials.ejb
以下提供者:
oracle.toplink.essentials.PersistenceProvider
oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider
向createEntityManagerFactory返回null。
位于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)
<?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>
oracle.toplink.essentials.PersistenceProvider
SomeDB
假的
我们还认为可能是添加了一个库问题或类似的问题。非常感谢您的帮助。谢谢您输入了错误的持久化单元名称。请使用xml中的名称(即使用
定义的名称)。您输入了错误的持久化单元名称。请使用xml中的名称(例如,用定义的那一个,您使用的是OC4J应用程序服务器吗?您使用的是OC4J应用程序服务器吗?好的,我们试过了,所以得到了相同的错误。我们认为它与persistence.xml的文件路径有关,但是netbeans创建了pu,所以它应该位于正确的位置,对吗?是的,它位于正确的位置。确保您的更改是正确的。)部署。(“相同的错误”意味着它仍然在寻找错误的pu)好的,我们尝试了,所以得到了相同的错误。我们认为它与persistence.xml的文件路径有关,但是netbeans创建了pu,所以它应该在正确的位置,对吗?是的,它在正确的位置。确保您的更改已部署(“相同的错误”意味着它仍然在寻找错误的pu)
emf = Persistence.createEntityManagerFactory("JPAExamplePU");