drools 规则中规则 "variable name" 的异常执行结果

Exception executing consequence for rule "variable name" in drools rule

我遇到以下异常:

Exception executing consequence for rule "abc" ...

我正在尝试在我的 jsp 文件中传递 statecode(LHS) 值。并检查所选内容是否为 statecode==AS

我是 drools 框架的初学者。

我的规则代码是:

package rules
import com.myapp.ApplFormBean

rule "checkstate"
dialect "java"
when 
$applbean:ApplFormBean(stateCode=="AS")
then
   System.out.println("StateIs: "+$applbean.stateCode);
end

您应该将 Exception 完整消息和 ApplFormBean class 添加到您的问题中。

如果你有 stateCode 的 getter 方法,在这种情况下使用

System.out.println("StateIs: "+$applbean.getStateCode());

在您的 then 声明中。

第二个问题更多地是关于如何编写 Web 应用程序,而不是 Drools 的问题。

您应该这样考虑(作为 MVC 模式):

  • 您post将JSP表单发送到服务器端。
  • 一个特定的控制器然后处理来自该 JSP 表单的请求。
  • 调用 Drools 的服务 API 到 运行 您的规则将是 由控制器调用。

在这个阶段 (Drools service API) 你可能应该从 kmodule.xml 构建一个 KieSession object 并插入你想要的对象评估

kieSession.insert(applbean);

最终,控制器将该服务的输出引导至 JSP。