garydai / ruleEngine

可视化规则引擎
66 stars 17 forks source link

javassist 问题 #9

Open skyooo opened 3 years ago

skyooo commented 3 years ago

请教个问题;

通过 javassist 生成的input 对象在drools RHS里为啥无法使用 如

rule "test" 
when 
    $ruleResult:RuleResult() 
    $input:xyz.sally.core.fact.input.Input67974f6b3897482aa7776a4bdd643b05(sex  >=  1) 
then
   System.out.println($input);
   $ruleResult.hitRule(drools.getRule().getName()) ;
end

编译报错; java.lang.RuntimeException: Unable to compile drool rules.

怀疑是$input 无法识别,

garydai commented 3 years ago

生成的drl,只能在该项目里运行

skyooo commented 3 years ago

生成的drl,只能在该项目里运行

不太明白,是在该项目里运行啊,意思是只能用于 when 作用域里吗? 我只是把这个用javassist生成的对象(input)在then里 输出 sex 的值

garydai commented 3 years ago

生成的drl,只能在该项目里运行

不太明白,是在该项目里运行啊,意思是只能用于 when 作用域里吗? 我只是把这个用javassist生成的对象(input)在then里 输出 sex 的值

多谢多谢,确实有这个问题,drools编译的时候读不到本地的对象class文件,导致编译失败,我已经去掉动态生成class,改成hashmap当作drools的输入了