Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa 异常javax.persistence.PersistenceException:EntityManager没有持久性提供程序_Jpa_Persistence_Toplink - Fatal编程技术网

Jpa 异常javax.persistence.PersistenceException: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

我们已经在这方面工作了好几天了,我们被难住了。这应该是一个使用TopLink的简单教程。我们正在尝试在开发真正的web应用程序之前让它工作。这是我们得到的以下例外情况:

线程“main”javax.persistence.PersistenceException中出现异常:没有名为pu1的EntityManager的持久性提供程序:
以下提供者:
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");