Drools规则引擎KieSession空指针异常问题排查求助
KieSession为空引发NullPointerException,排查常见问题后仍未解决
我正在学习Drools规则引擎,实践时遇到如下空指针异常:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.kie.api.runtime.KieSession.insert(Object)" because "ksession" is null at com.sample.DroolsShop.execute(DroolsShop.java:22) at com.sample.DroolsShop.main(DroolsShop.java:13)
我使用的开发环境是Eclipse,搭配droolsjbpm-tools-distribution-7.41.0.Final插件。目前已经排查过以下常见诱因,但未发现问题:
- 不存在缺失
pom.properties文件的情况 - 确认
kmodule.xml文件存在且配置无误 - 核对过kbase命名,没有拼写错误
相关代码
DroolsShop.java 关键片段
public class DroolsShop { public static void main(String[] args) { DroolsShop ds = new DroolsShop(); ds.execute(); } public void execute() { // 此处为获取KieSession的代码 // ... ksession.insert(new SomeObject()); // 第22行,抛出NPE ksession.fireAllRules(); ksession.dispose(); } }
kmodule.xml 内容
<?xml version="1.0" encoding="UTF-8"?> <kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule"> <!-- 此处为你的kbase和ksession配置 --> <kbase name="rules" packages="com.sample"> <ksession name="ksession-rules"/> </kbase> </kmodule>
项目结构
src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── sample/ │ │ └── DroolsShop.java │ └── resources/ │ ├── META-INF/ │ │ └── kmodule.xml │ └── com/ │ └── sample/ │ └── rules.drl
恳请帮忙诊断KieSession为空的原因。
内容的提问来源于stack exchange,提问作者Samuel
相关产品推荐
相关产品推荐

