Пример задачи 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
каталог к пути к классам.
Это должно быть так сложно?