drools - 无法分析表达

时间:2013-08-04 17:09:00

标签: drools

我在DRL文件中定义了一些规则,这是我创建drl文件的第一个程序。我收到错误“无法分析表达式”。这是我的代码:

package rules

import com.sample.Applicant.appli;

rule "Is of valid age"

when

    $a : appli ( age < 18 ) // appli is my class name
                            // age is a variable in that class

then

    $a.setValid( false ); // setValid is a method of appli

end

并收到错误:

Unable to Analyse Expression age < 18:

[Error: unable to resolve method using strict-mode: com.sample.Applicant$appli.age()]

[Near : {... age < 18 ....}]

         ^
[Line: 16, Column: 4] : [Rule name='Is of valid age']

2 个答案:

答案 0 :(得分:2)

请确保在课程appli中,age是公开的,或者是公开getAge()方法。

答案 1 :(得分:0)

Drools Workbench 6.4.0 Final 中验证DRL文件时,即使我收到类似错误'无法分析表达式......' STRONG>。我检查了Data Object,它的字段,setter和getter的访问说明符。一切似乎都好。然后我保存了我的数据对象并返回DRL文件并进行了验证。突然上面的错误消失了,我看到消息'成功验证'。我的错误是虽然我在Drools Workbench中创建了数据对象,但我忘了通过点击“保存”按钮来保存它。

所以我建议你,如果你100%确定你的数据对象和DRL文件是正确的,先保存它们然后再次验证DRL文件。