Java Drools在议程筛选器之外的规则上获取NullPointerException
我正在使用Drools引擎,遇到了一个意外的异常 我一直收到例外情况:Java Drools在议程筛选器之外的规则上获取NullPointerException,java,nullpointerexception,drools,Java,Nullpointerexception,Drools,我正在使用Drools引擎,遇到了一个意外的异常 我一直收到例外情况: 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_sta
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")
知道我做错了什么吗?议程组只用于将您希望执行的规则分组。您的知识库中的所有规则仍将在需要时进行评估,无论它们属于哪个议程组
希望对您有所帮助,您对这个问题还有其他的解释吗?这些是你的项目中涉及的其他Drools事实或其他代码吗?我做了一个小小的编辑。我还发送了一个请求对象,其中包含一些与预期运行的给定规则集相关的信息。我对例外情况不太感兴趣,更不明白为什么首先要检查规则。这帮了大忙。我意识到,当调用某些议程组时,我传递给规则的对象丢失了一条信息,从而导致空指针异常。从现在起,我将确保我的规则更加安全。大家好,有没有办法设置Drools执行算法,使其跳过抛出空指针异常的规则,并继续评估知识库中的下一个规则?因为插入到我创建的每个会话中的数据肯定不会满足每个可能规则中的所有可能条件。我希望防止在第一个空指针异常之后破坏规则。先谢谢你。