我正在使用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( "
...
有人知道我需要为这件作品做些什么吗?这很重要,因为我的项目将由非IT人员使用。
感谢。
Guided Editor生成的源代码非常简单:
rule "exception test"
dialect "mvel"
when
eval( true );
then
throw new Exception( "error message" );
end
答案 0 :(得分:3)
问题不在于使用DSL句子,而在于使用'mvel'
方言。看起来Mvel不喜欢抛出Exception语法。
解决方案是使用'java'
方言代替。
为此,您必须在规则中添加'java'
方言选项:
不幸的是,据我记忆,Guvnor没有全局设置默认情况下使用'java'
方言。