Бросать исключение в 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' диалект по умолчанию.

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