流口水规则中规则“变量名”的异常执行结果

时间:2019-01-21 07:51:05

标签: java spring spring-boot spring-mvc drools

我遇到以下异常:

  

规则“ abc”的异常执行结果...

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

  • 如何检查LHS值是否通过?如何在控制台中打印statecode的值?
  • 如何使用Spring Boot将jsp中的动态值传递给drl?

我是Drools框架的初学者。

我的规则代码是:

package rules
import com.myapp.ApplFormBean

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

1 个答案:

答案 0 :(得分:0)

您应该将 Exception 完整消息以及ApplFormBean类添加到您的问题中。

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

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

在您的then语句中。

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

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

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

在此阶段(Drools service API),您可能应该从KieSession构建一个kmodule.xml 对象,然后插入要评估的对象

kieSession.insert(applbean);

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

相关问题