我有一个用 maven 创建的简单 java 项目(快速入门原型)
我正在尝试为 drools 会话配置 JPA 持久性(代码来自 drools 文档)
我在 pom.xml 中添加了 drools-persistence-jpa、Bitronix Transaction Manager 和 com.h2database 依赖项
我在“src/META-INF”中的 Eclipse 项目中创建了一个 META-INF 文件夹作为 Source-Folder
我在那里添加了 persistence.xml 和 jndi.properties 文件。
在我的测试用例中,我有以下代码:
[...] EntityManagerFactory emf = Persistence.createEntityManagerFactory("org.drools.persistence.jpa"); [...]
运行测试时,我得到以下异常:
javax.persistence.PersistenceException:在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:69) 中的 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47) 中没有名为 org.drools.persistence.jpa 的 EntityManager 的持久性提供程序com.sample.MyTest.testJPA(MyTest.java:112)
我比较确定,我创建 META-INF 或 persistence.xml 的方式有问题(见下文)。有什么建议么?
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
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
http://java.sun.com/xml/ns/persistence/orm
http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
<persistence-unit name="org.drools.persistence.jpa" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/testDatasource</jta-data-source>
<class>org.drools.persistence.info.SessionInfo</class>
<class>org.drools.persistence.processinstance.ProcessInstanceInfo</class>
<class>org.drools.persistence.processinstance.ProcessInstanceEventInfo</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.autocommit" value="true" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.BTMTransactionManagerLookup" />
</properties>
</persistence-unit>
</persistence>