Вызов из правила Drools на Java и вызов на запросJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вызов из правила Drools на Java и вызов на запрос

Сообщение Anonymous »

При переходе с версии 5.5.0.Final Drools на последнюю версию Drools 9.44.0.Final возникает загадочная ошибка.
У нас есть правило, которое вызывает метод Java, а затем этот метод вызывает запрос от Drools. В старой версии это работало нормально, но теперь в последних версиях не работает. Выполнение зависает.
Отладка, как будто текущее состояние повестки дня KieSessions было ЗАПУСКА, и вызов Query вызывает новый элемент в этой повестке дня, который блокируется навсегда и никогда не возвращается в код.< /p>
Пример кода:
////
// DROOLS
////
query javaToDrools
ves : Data()
end

rule "INSERT: New Item"
when
$data: MyData($id:id)
then
System.out.println("Insert Data: " + $id);
insert(new Data($data));
myJavaClass.droolsToJava();
end

////
// JAVA
////
public void droolsToJava() {
QueryResults results = session.getQueryResults("javaToDrools");
results.forEach(res -> {
res.toString();
});
session.fireUntilHalt();
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... l-to-query
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»