drools菜鸟求指导!

ran718 2014-01-07 12:56:10
新手刚开始研究Drools……
配好了环境什么的,想做个helloworld……
new一个helloworld project,按照别人说的一路“下一步”,生成了项目,
可是执行的时候报错了:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NullPointerException
at com.sample.DroolsTest.main(DroolsTest.java:23)
导入slf4j.nop.jar之后依旧报错:
java.lang.NullPointerException
at com.sample.DroolsTest.main(DroolsTest.java:23)
代码是eclipse生成的最简单的helloworld……
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);//报空指针!debug发现kSession为空
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;
}

}

}


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


从网上下载了别人完整的比较复杂的项目,导入后可以直接运行……求指导为什么会报错!
...全文
2951 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
lk313750285 2016-03-20
  • 打赏
  • 举报
回复
引用
#7
这都是drools的runtime包,去drools官方下载
lovin_fang 2014-07-16
  • 打赏
  • 举报
回复
我都不知道jar包在哪个地方,能告诉一下吗? import org.jbpm.test.JbpmJUnitBaseTestCase; import org.kie.api.runtime.KieSession; import org.kie.api.runtime.manager.RuntimeEngine; import org.kie.api.runtime.manager.RuntimeManager; import org.kie.api.runtime.process.ProcessInstance; 这些jar包哪里下载啊,希望群主回答,也希望知道的人都告诉我下!急
ran718 2014-04-02
  • 打赏
  • 举报
回复
引用 1 楼 l644066674 的回复:
亲 你这个问题解决了吗????
同见4楼~
ran718 2014-04-02
  • 打赏
  • 举报
回复
引用 3 楼 miniloong 的回复:
me too 啊 亲,怎么解决?
见4楼~
ran718 2014-04-02
  • 打赏
  • 举报
回复
引用 2 楼 fan2527265 的回复:
同问,亲,你这个问题是怎么解决的,我也遇到了这样的问题,此外,能否把你下的程序给我一用,谢谢~!
原因是项目缺少了一个配置文件kmodule.xml,以至于生成ksession时出了问题,解决方法: 在新建项目的最后一步,选择“runtime”时,窗口中有一个地方可以填写: groupId= artifactId= version= 不要空着,填写正确的信息,最后生成的就会是一个maven(或者说类maven)的项目,包含helloworld所需所有的配置,直接执行就可以了~
miniloong 2014-04-02
  • 打赏
  • 举报
回复
me too 啊 亲,怎么解决?
陈旭媛 2014-03-12
  • 打赏
  • 举报
回复
同问,亲,你这个问题是怎么解决的,我也遇到了这样的问题,此外,能否把你下的程序给我一用,谢谢~!
l644066674 2014-02-08
  • 打赏
  • 举报
回复
亲 你这个问题解决了吗????

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧