0

我正在使用 Guvnor 构建一个规则项目。在我的一个 DSL 中,对于错误的操作,我有以下“后果”声明:

[when]Error "{message}"=throw new Exception( "{message}" );

如果我使用 DSL 规则,用 DSL 语句编写所有规则,它可以完美运行。但是,使用引导式编辑器,这不起作用,并且验证会这样说:

[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
4

1 回答 1

3

问题不在于使用 DSL 句子,而在于使用'mvel'方言。Mvel 似乎不喜欢 throw Exception 语法。解决方案是改用'java'方言。

为此,您必须'java'在规则中添加方言选项:

在此处输入图像描述

不幸的是,据我记得,Guvnor 中没有'java'默认使用方言的全局设置。

于 2013-10-08T10:25:40.010 回答