Drools7.0规则引擎KieSession空指针问题解决

问题

在使用drools7的时候,通过kmodule.xml文件加载规则的时候,在获取KieSession的时候总是报空指针。但是明明代码之前测试过是没用问题的。

解决

在碰到几次这个问题的时候,大致摸索出一个解决方案,但是问题的具体原因还需要继续跟进。问题原因大致是和Maven有关系。可能是存在缓存问题。所以在我将maven项目重新编译一下就可以了。idea上操作如下:
Drools7.0规则引擎KieSession空指针问题解决_第1张图片

如果compile还是不行,就先clean再compile一下。

相关代码

kmodule.xml:


<kmodule xmlns="http://www.drools.org/xsd/kmodule"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <kbase name="rule1KB" packages="rules">
        <ksession name="rule1KS"/>
    kbase>
kmodule>

Java代码获取session:

        KieContainer kc = KieServices.Factory.get().getKieClasspathContainer("rule1KB");
        KieSession kieSession = kc.newKieSession("rule1KS");
        int i = kieSession.fireAllRules();
        System.out.println("执行了"+ i);
        kieSession.dispose();

END

你可能感兴趣的:(Drools规则引擎)