我们已经为此工作了好几天,我们很困惑。这应该是一个使用 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>
我们还认为这可能是添加库问题或类似的东西。任何帮助深表感谢。谢谢