Drools在议程过滤器之外的规则上获取NullPointerException

时间:2018-07-06 13:30:39

标签: java nullpointerexception drools

我正在使用Drools Engine,并且遇到了意外的异常。

我一直收到异常:

Caused by: java.lang.NullPointerException
at com.validator.controllers.Rule_When_health_notification_received_determine_system_status$u46$1878980533.eval0(Rule_When_health_notification_received_determine_system_status$u46$1878980533.java:8)
at com.validator.controllers.Rule_When_health_notification_received_determine_system_status$u46$1878980533Eval0InvokerGenerated.evaluate(Unknown Source)
at com.validator.controllers.Rule_When_health_notification_received_determine_system_status$u46$1878980533Eval0Invoker.evaluate(Unknown Source)
at org.drools.core.rule.EvalCondition.isAllowed(EvalCondition.java:118) [drools-core-6.3.0.Final.jar:6.3.0.Final]

问题在于此规则不应在我的AgendaFilter中。应该运行的规则是:

FactHandle requestFact = kSession.insert(request);

kSession.fireAllRules(new GenericAgendaFilter(ObjectTypes.GROUP, Operations.ITEM_UPDATE));

请求包含一些要使用的规则的基本信息。

我的规则具有的标签是:

   @Type("ITEM")
   @Operation("CHANGE_HEALTH")

知道我在做什么错吗?

1 个答案:

答案 0 :(得分:2)

agenda-group仅用于将要执行的规则分组在一起。不管它们属于agenda-group是什么,仍然需要在您的知识库中评估所有规则。

希望有帮助,