在流氓中运行helloworld时获取空指针异常 [英] Getting null pointer exception while running helloworld in drools
本文介绍了在流氓中运行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屋!
查看全文