【发布时间】:2022-01-25 09:34:04
【问题描述】:
我想从drools中获取表达式值。这样的drl。
global java.util.Map $globalVar;
global java.lang.Object $result;
import java.util.Map;
function myFunc(Map map){
return "hello";
}
rule "onlyone"
when
$factMap: Map($tmpResult:(myFunc($globalVar)), eval(true))
then
$result = $tmpResult;
end
当规则出现异常时,像这样
原因:org.mvel2.PropertyAccessException:[无法解析方法:java.util.Map.$globalVar() [argslength=0]]
全局变量 $globarVar 与事实无关。
很可能drools无法识别全局变量。我的drl有语法错误吗?
【问题讨论】:
-
您的函数缺少返回类型。而且你不能像那样使用
eval(true)。 -
其实你到底想做什么,
Map( $tmpResults: ... )的事情完全没有意义。
标签: drools