Drools HelloWorld示例新安装抛出空指针

时间:2013-12-09 20:45:00

标签: java eclipse drools

控制台输出:

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.
java.lang.NullPointerException
at com.sample.DroolsTest.main(DroolsTest.java:23)

DroolsTest.Java中的第12-28行

    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); //This is 23
        kSession.fireAllRules();
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

Windows 7.全新安装Eclipse,Java和Drools插件。

我已经看到其他人收到空指针错误,但是当Drools Core不存在时,他们会得到大约15个错误。我找不到任何人只收到这些2.

我假设我错过了一些安装件,但我无法弄明白。另外,我在包资源管理器中可以看到Drools库中的slf4j-api.jar文件。

我对Java很新,所以向我提问,我会发布你需要看到的片段。

我可以在Package Explorer中导航到它正在调用的“org.kie.api.runtime.rule.EntryPoint.insert(Object arg0)”,但是我看到一个页面上写着“类文件编辑器”然后“来源”找不到“

2 个答案:

答案 0 :(得分:6)

似乎需要提供三个值。可以使用向导提供的“Drools Runtime”面板上的三个文本框,也可以手动更新项目中的pom.properties文件。对我有用的三个值是:

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

在我的情况下,pom.properties文件位于C:\ Users \ clark \ workspace \ HelloWorld \ src \ main \ resources \ META-INF \ maven中,其中“HellowWorld”是我给项目的名称。

我在上面详细阐述的基本答案可以在这里找到:Getting null pointer exception while running helloworld in drools

[原始问题中显示的代码由Drools项目向导生成。 File ... New ... Project ... Drools Project ...然后检查“New Drools Project”的前两个复选框]

答案 1 :(得分:0)

这些项目使用Maven进行配置。你需要:

  1. 在项目的根目录中从命令行运行“mvn eclipse:eclipse”。
  2. 安装m2e Eclipse插件,以便Eclipse IDE可以识别Maven项目结构并加载适当的依赖项。