异常 javax.persistence.PersistenceException:没有 EntityManager 的持久性提供程序
我们已经为此努力了好几天,但我们被难住了。这应该是一个使用 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>
我们还认为这可能是添加库问题或类似的问题,非常感谢您的帮助。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您的持久性单元名称错误。使用 xml 中的一个(即用 定义的一个):
You have the wrong persistence unit name. Use the one from the xml (i.e. the one defined with
<persistence-unit name="..."
):