Пример задачи Drools Flow Human: как предотвратить возникновение исключения "Именованный запрос не найден"?

Я пытаюсь следовать примеру кода Drools Flow в документации Human Task, и у меня есть следующий код:

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 файл в META-INF как указано здесь (что определенно поднимается, когда я получаю ошибку разбора XML, если я ее искажаю), но выдается следующее исключение:

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)`

Обратите внимание, что второй параметр TaskService требуется, но не упоминается в документации. Мне кажется маловероятным, но может ли это быть null как я это делал вызывает эту проблему?

1 ответ

Решение

Я предотвратил это исключение, скопировав оба persistence.xml а также orm.xml от drools-process-task-5.0.1.jar/META-INF (именованный запрос UnescalatedDeadlines указывается в orm.xmlв мой встроенный META-INF каталог.

Однако сейчас я получаю еще одно исключение (java.lang.NoClassDefFoundError: antlr/ANTLRException из спящего)...

Чтобы исправить antlr/ANTLRException проблема, которую я скачал последний дистрибутив Hibernate (hibernate-distribution-3.3.2.GA-dist.zip) и добавил antlr-2.7.6.jar от lib каталог к ​​пути к классам.

Это должно быть так сложно?

Другие вопросы по тегам