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

标签 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 还很陌生,所以请向我提出问题,我将发布您需要查看的片段。

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

最佳答案

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

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 项目向导生成的。文件...新建...项目...Drools 项目...然后选中“New Drools Project”顶部的两个复选框]

关于java - Drools HelloWorld 示例全新安装抛出空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480399/

相关文章:

Eclipse搜索特定软件包中的文件

java - 如何在 Eclipse 中安装和设置 Cucumber jar 文件以进行 WebDriver 测试

java - HTTPClient MultipartEntity 似乎正在向 StringBody 部分添加垃圾文本

java - 如何以编程方式绑定(bind)上下文特定的 JNDI 资源

java - 项目 66 : Synchronize access to shared mutable data

c++ - std::thread 无法在 linux eclipse 上工作

java - 基于时间的约束和 "now"

java - Drools 规则格式仅触发一次

java - 需要 Drools 项目创意

java - 正则表达式用于屏蔽 Java 中除前两个和最后两个字符之外的字符