当前位置: 首页 > 知识库问答 >
问题:

Drools HelloWorld示例Fresh Install抛出空指针

施飞昂
2023-03-14

控制台输出:

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中的第12-28行。Java

    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();
    }
}

全新安装Eclipse、Java和Drools插件。

我见过其他人收到空指针错误,但当Drools Core不存在时,他们会收到大约15个错误。我找不到任何人只收到这2个。

我想我错过了一些安装件,但我想不出来。此外,我还有slf4j api。Drools库中的jar文件在包资源管理器中可见。

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

我可以在包资源管理器中导航到它调用的“org.kie.api.runtime.rule.EntryPoint.insert(Object arg0)”位置,但我看到一个页面,上面写着“Class File Editor”,然后写着“Source Not Found”

共有2个答案

秦经义
2023-03-14

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

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

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

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

在我的例子中是pom。属性文件位于C:\Users\clark\workspace\HelloWorld\src\main\resources\META-INF\maven中,其中“HelloWorld”是我为项目指定的名称。

我在上面详细阐述的基本答案可以在这里找到:在drools中运行helloworld时获取空指针异常

[原始问题中显示的代码由Drools项目向导生成。文件…新建…项目…Drools项目…然后选中“新建Drools项目”上的前两个复选框]

 类似资料:
  • 问题内容: 我正在android中做一个应用程序,因此我需要访问com.android.internal.telephony API。现在,我可以访问这些API了,但问题是,无论我在自己的类中调用Class Call.java方法的什么地方,都会抛出。您可以在http://hi- android.info/src/com/android/internal/telephony/Call.java.h

  • 首先,下面的代码片段是Google云项目应用程序的一部分,在我的本地客户机Raspberry Pi 1上运行。为了能够从连接到Pi的传感器向云发送数据,需要授权。所有需要的客户端机密都存储在src/main/resources中的“client_secrets.json”中。 项目层次结构 当试图使用客户端机密来授权时,下面的代码抛出一个NullPointerException。它是类“CmdLi

  • 我对spring boot和JPA相当陌生。我正在做我的学习目的的小项目。 实体类 有线索吗?

  • 问题内容: 我创建了一个单元工厂包装器,以启用JavaFX表单元的自定义配置。请参见下面的代码。 这个cellfactory包装器通常可以在我所有的表视图中导航。但是,一旦我在系统中执行其他功能,例如添加新记录,编辑记录等,就会引发以下错误。 我似乎无法弄清楚为什么这个包装器认为我的CML类中包含空值。任何人对于为什么会抛出此Null Pointer异常有任何想法? 问题答案: 不能保证在第一次调

  • 我正在使用本教程学习Spring Security性和AngularJS。本教程的第一部分指定了对的非常具体的更改。但是当我添加这些更改时,会出现错误。 当我试图通过在CentOS终端上运行来绕过eclipse时,会出现以下堆栈跟踪结果: 注在上面的堆栈跟踪中有一个错误。起初,我认为该错误可能是由于重新启动程序时端口8080冲突造成的,但即使在运行和以重新启动Tomcat时,问题仍然存在。另外,请

  • 问题内容: 在双头链表中,我使用了另一个链接,该链接通过copy构造函数复制到copy 。但是,当我遍历链接列表从后端插入时,它抛出了一个空指针异常。 } 问题答案: 问题似乎出在方法上。您有条件继续前进,直到node 不为null 为止: 当while循环结束时,将指向位置。然后在下一行: 现在为null,下一行: 正在尝试访问,因此是NPE的问题。您需要通过将while循环条件更改为以下内容来