我在运行一个简单的helloworld示例drools项目时遇到了以下错误。
199 [main] ERROR org.drools.compiler.kie.builder.impl.KieContainerImpl - Unknown KieSession name: ksession-rules
java.lang.NullPointerException
at com.sample.DroolsTest.main(DroolsTest.java:24)
代码:
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);
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
回答得有点晚,但是。。。
我检查了我的pom。属性文件,它只包含以下内容:
groupId=
artifactId=
version=
没有定义任何内容!将其更改为:
groupId=DroolsTest
artifactId=DroolsTest
version=0.0.1-SNAPSHOT
把你拥有的任何东西作为pom中的那些属性。xml并将其放入pom中。属性修复了我的问题。现在运行良好。
我最近开始使用JBPM,遇到了一个类似的问题。我有两个问题需要解决。
首先,我需要创建pom。此线程中另一个答案中列出的属性文件。我必须创建src/main/resources/META-INF/maven/pom。属性文件,因为当我通过eclipse创建新的JBPM Maven项目时,它不是自动生成的。该文件应包含以下信息,这些信息应与项目的pom文件相匹配:
groupId=com.sample
artifactId=jbpm-example
version=1.0.0-SNAPSHOT
我遇到的另一个问题是有一个空白的kmodule.xml。这应该在src/main/resources/META-INF/kmodule.xml中。文件中需要以下内容:
<kmodule xmlns="http://jboss.org/kie/6.0.0/kmodule">
<kbase name="process" packages="process">
<ksession name="ksession-process"/>
</kbase>
</kmodule>
如果您查看newKieSession方法参数,它需要匹配ktext元素的“名称”属性。kbase元素的“包”属性需要匹配您的DRL文件所在的包名称。
它看起来像drools kie api/internal library execution在src\main\resources\META-INF\maven\pom下查找强制值。drools eclipse项目的属性文件。
更新我的pom。xml或pom。以下内容的属性在6.0.0 drools分布上运行良好。
groupId=com.test.sample.drools
artifactId=DroolsTestProject
version=1
此函数转换Hbase格式的数据 这是我在第125行得到的错误:hbaseputs.saveasnewapiHadoopDataSet(job.getconfiguration)
控制台输出: DroolsTest中的第12-28行。Java 全新安装Eclipse、Java和Drools插件。 我见过其他人收到空指针错误,但当Drools Core不存在时,他们会收到大约15个错误。我找不到任何人只收到这2个。 我想我错过了一些安装件,但我想不出来。此外,我还有slf4j api。Drools库中的jar文件在包资源管理器中可见。 我对Java很陌生,所以向我提问,我会发
我正在使用CSV reader从获取数据,并在使用DataProvider的测试函数中使用该数据。
我现在使用的是Itext PDFSmartCopy。我正在使用XMLWorker向document对象添加一些业务内容。然后我声明了一个阅读器(用于连接到此文档对象的pdf文件)。然后我用相同的文档对象和输出文件流作为参数调用PdfSmartCopy。然后使用常规步骤将页面复制到文档中, 但如果我使用一个新的文档对象ie而不添加业务内容,则这一块工作得很好。
我使用drools with Spark来执行一些规则。我已经编写了一个加载.drl文件的方法。并实例化“InternalKnowledgeBase”的对象。下面的代码在本地模式下工作,但当我在集群(EMR)中运行时,我遇到以下异常。附加代码和异常堆栈跟踪。 请查找异常堆栈跟踪。 感谢你的帮助!谢谢。
当我运行Nutch命令~/Nutch/runtime/deploy$bin/Nutch crawl urls-dir/user/dlequoc/urls-depth 2-topn5时,我得到了以下异常: ====================================================================================== 你能帮忙吗?谢谢!