在流氓中运行helloworld时获取空指针异常 [英] Getting null pointer exception while running helloworld in drools

查看:268
本文介绍了在流氓中运行helloworld时获取空指针异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  199 [main] ERROR org.drools。 compiler.kie.builder.impl.KieContainerImpl  - 未知KieSession名称:ksession-rules 
java.lang.NullPointerException
在com.sample.DroolsTest.main(DroolsTest.java:24)

代码:

 包com.sample; 

import org.kie.api.KieServices; import
org.kie.api.runtime.KieContainer; import
org.kie.api.runtime.KieSession;

/ ** *这是一个启动规则的示例类。 * / public class
DroolsTest {

public static final void main(String [] args){
try {
//加载知识库
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession(ksession-rules);

// go!
消息消息= new Message();
message.setMessage(Hello World);
message.setStatus(Message.HELLO);
kSession.insert(message);
kSession.fireAllRules();
} catch(Throwable t){
t.printStackTrace();
}
}

public static class Message {

public static final int HELLO = 0;
public static final int GOODBYE = 1;
private String message;
private int status;

public String getMessage(){
return this.message;
}

public void setMessage(String message){
this.message = message;
}

public int getStatus(){
return this.status;
}

public void setStatus(int status){
this.status = status;
}

}

}

drools代码:

  package com.sample 
import com.sample.DroolsTest.Message;

规则Hello World

m时:消息(status == Message.HELLO,myMessage:message)
然后
System.out.println (myMessage);
m.setMessage(再见残酷的世界);
m.setStatus(Message.GOODBYE);
update(m);
end

规则GoodBye

消息(status == Message.GOODBYE,myMessage:message)
然后
系统。 out.println(myMessage);
end


解决方案

看起来流氓kie-api /内部库执行在drools eclipse项目的src\main\resources\META-INF\maven\pom.properties文件下查找必需的值。



将我的pom.xml或pom.properties更新到下面的内容在6.0.0流口水分布上正常。

  groupId = com。 test.sample.drools 
artifactId = DroolsTestProject
version = 1


I got the following error while running a simple helloworld sample drools project.

199 [main] ERROR org.drools.compiler.kie.builder.impl.KieContainerImpl - Unknown KieSession name: ksession-rules
java.lang.NullPointerException
    at com.sample.DroolsTest.main(DroolsTest.java:24)

Code:

package com.sample;

import org.kie.api.KieServices; import
org.kie.api.runtime.KieContainer; import
org.kie.api.runtime.KieSession;

/**  * This is a sample class to launch a rule.  */ public class
DroolsTest {

    public static final void main(String[] args) {
        try {
            // load up the knowledge base
            KieServices ks = KieServices.Factory.get();
            KieContainer kContainer = ks.getKieClasspathContainer();
            KieSession kSession = kContainer.newKieSession("ksession-rules");

            // go !
            Message message = new Message();
            message.setMessage("Hello World");
            message.setStatus(Message.HELLO);
            kSession.insert(message);
            kSession.fireAllRules();
        } catch (Throwable t) {
            t.printStackTrace();
        }
    }

    public static class Message {

        public static final int HELLO = 0;
        public static final int GOODBYE = 1;
        private String message;
        private int status;

        public String getMessage() {
            return this.message;
        }

        public void setMessage(String message) {
            this.message = message;
        }

        public int getStatus() {
            return this.status;
        }

        public void setStatus(int status) {
            this.status = status;
        }

    }

}

drools code:

package com.sample
import com.sample.DroolsTest.Message;

rule "Hello World"
when
    m : Message( status == Message.HELLO, myMessage : message )
then
    System.out.println( myMessage );
    m.setMessage( "Goodbye cruel world" );
    m.setStatus( Message.GOODBYE );
    update( m );
end

rule "GoodBye"
when
    Message( status == Message.GOODBYE, myMessage : message )
then
    System.out.println( myMessage );
end

解决方案

It looks drools kie-api/internal library execution looks for mandatory values under src\main\resources\META-INF\maven\pom.properties file for the drools eclipse project.

Updating my pom.xml or pom.properties into below content worked fine on 6.0.0 drools distribution.

groupId=com.test.sample.drools
artifactId=DroolsTestProject
version=1

这篇关于在流氓中运行helloworld时获取空指针异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆