0

我正在尝试遵循Human Task 文档中的Drools Flow示例代码,并且我有以下代码:

import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.drools.task.service.TaskService;

// ...

EntityManagerFactory emf = 
  Persistence.createEntityManagerFactory("org.drools.task");
TaskService taskService = new TaskService(emf, null);

我已经按照此处指定的方式放入了一个persistence.xml文件(如果我弄乱它,肯定会收到一个 XML 解析错误),但是会引发以下异常:META-INF

Exception in thread "main" java.lang.IllegalArgumentException: 
  Named query not found: UnescalatedDeadlines
at org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery(
  AbstractEntityManagerImpl.java:108)
at org.drools.task.service.TaskService.<init>(TaskService.java:65)
at org.drools.task.service.TaskService.<init>(TaskService.java:48)
at com.sample.RuleFlowTest.main(RuleFlowTest.java:32)`

请注意,第二个参数 toTaskService是必需的,但未在文档中提及。null对我来说似乎不太可能,但是否像我所做的那样设置它会导致这个问题?

4

1 回答 1

1

persistence.xml我通过将和orm.xmldrools-process-task-5.0.1.jar/META-INF(在 中指定的 UnescalatedDeadlines 命名查询orm.xml)复制到我的构建META-INF目录中来防止此异常。

但是,我现在遇到了另一个例外(java.lang.NoClassDefFoundError: antlr/ANTLRException来自 Hibernate)......

为了解决这个antlr/ANTLRException问题,我下载了最新的 Hibernate 发行版 ( hibernate-distribution-3.3.2.GA-dist.zip) 并antlr-2.7.6.jarlib目录添加到类路径中。

有必要这么复杂吗?

于 2009-09-30T08:57:00.110 回答