【发布时间】:2012-12-31 14:43:09
【问题描述】:
我是 Drools 的新手,正在尝试让示例程序正常工作。 这个示例在drools 文档http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e9542 中给出。 这个流口水规则预计会对整数进行排序。我只是更改了示例中给出的数字,但它们没有按预期排序。 尝试使用drools 5.5.0、5.5.1 和master 6.0.0 版本,但得到相同的错误结果。
以下是主要代码:
包 com.sample; 公共类示例2 { 公共静态 void main(String[] args) 抛出异常 { Number[] numbers = new Number[] { wrap(5), wrap(6), wrap(4), wrap(1), wrap(2) }; new RuleRunner().runRules(new String[] { "Example3.drl" }, numbers); } 私人静态整数换行(int i){ 返回新整数(i); } }RuleRunner 类与示例中给出的相同,我认为我不应该在这里给出它,因为它会使问题变得混乱。它只是创建知识库、有状态会话,插入上面“数字”数组中给出的事实,然后在会话上调用 fireAllRules 方法。
规则文件(Example3.drl)为:
规则“规则 04”
方言“mvel”
什么时候
$number : 数字()
不是数字(intValue
然后
System.out.println("找到值的数字:" + $number.intValue());
收回($number);
结束
我得到的输出如下:
加载文件:Example3.drl 插入事实:5 插入事实:6 插入事实:4 插入事实:1 插入事实:2 找到值的数字:1 找到值的数字:4 找到值的数字:2 找到值的数字:5 找到值的数字:6不是正确的预期升序排序。
我可能做错了什么?我无法想象 drools 规则引擎会在这个基本级别上被打破。
【问题讨论】:
标签: drools rule-engine