我在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']
答案 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文件。