我在DRL文件中定义了一些规则,这是我创建drl文件的第一个程序。我得到的错误“无法分析表达式”.Here是我的代码:
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']发布于 2013-08-07 06:34:57
确保在类appli中,age要么是公共的,要么有一个公共getAge()方法。
发布于 2016-09-06 20:40:47
甚至我在验证Drools 6.4.0最终中的DRL文件时,也得到了类似的错误:无法分析表达式……。我检查了数据对象、它的字段、setters和getter的访问说明符。一切看起来都还好。然后,我保存了我的数据对象,并返回到DRL文件并进行验证。突然,上面的错误消失了,我看到了消息‘成功验证’。我的错误是,虽然我在Drools中创建了数据对象,但我忘了通过单击“ save ”按钮来保存它。
因此,我建议您,如果您100%确信您的数据对象和DRL文件是正确的,请先保存这些文件,然后再次验证DRL文件。
https://stackoverflow.com/questions/18045403
复制相似问题