【问题标题】:Drools HelloWorld Example Fresh Install Throws Null PointerDrools HelloWorld 示例全新安装抛出空指针
【发布时间】:2013-12-27 03:20:43
【问题描述】:

控制台输出:

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 个的人。

我假设我错过了一些安装部分,但我无法弄清楚。此外,我在包 Explorer 中可以看到 Drools 库中的 slf4j-api.jar 文件。

我对 Java 很陌生,所以向我提问,我会发布你需要查看的 sn-ps。

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

【问题讨论】:

  • “全新安装” - 没关系。您下载的代码几乎总是需要一些调整。查看 kContainer... 显然它在第 16 行返回 null,因此请调查原因。
  • @Martin 这就是我所看到的。我认为我缺少一些文件?谢谢你的帮助。 i.imgur.com/dTL9EX5.jpg
  • 1.我认为您没有丢失文件。您看不到源代码的原因是因为 JAR 不适合阅读。 2. 因为我不知道什么是“流口水”,所以我帮不了你太多。 3. 继续在网上搜索,直到您在这里得到答案。在你的位置,我会从寻找drools: newKieSession return null 或类似的东西开始。 4. 当然打印到屏幕上,确保它是空的,不要太相信我:)
  • 请发布一个链接,指向您获得该示例项目的位置。

标签: java eclipse drools


【解决方案1】:

似乎需要提供三个值。可以使用向导提供的“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”上的前两个复选框]

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2018-10-19
      • 1970-01-01
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多