Бросать исключение в Guvnor (правило управляемого редактора)
Я строю проект правил с помощью Guvnor. В одном из моих DSL есть следующее "следствие" для неправильных операций:
[when]Error "{message}"=throw new Exception( "{message}" );
Если я использую правило DSL, пишу все правило с предложениями DSL, оно работает отлично. Однако, используя Guided Editor, это не работает, и проверка говорит что-то вроде этого:
[Error: unable to resolve method using strict-mode: org.drools.spi.KnowledgeHelper.throw()] [Near : {... throw new Exception( "
...
Кто-то знает, что мне нужно сделать для этой работы? Это важно, потому что мой проект будет использоваться не-айтишниками.
Благодарю.
Исходный код, сгенерированный Guided Editor, очень прост:
rule "exception test"
dialect "mvel"
when
eval( true );
then
throw new Exception( "error message" );
end
1 ответ
Проблема не в использовании предложений DSL, а в использовании 'mvel'
говор. Похоже, что Mvel не нравится синтаксис throw Exception. Решение заключается в использовании 'java'
вместо диалекта.
Для этого необходимо добавить 'java'
вариант диалекта в вашем правиле:
К сожалению, насколько я помню, в Guvnor нет глобальных настроек для использования 'java'
диалект по умолчанию.