2013-12-09 55 views
2

控制檯輸出:Drools的HelloWorld示例全新安裝拋出空指針

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) 

線12-28在DroolsTest.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(); 
    } 
} 

Windows 7的全新安裝的Eclipse,Java和Drools的的插入。

我見過其他人收到空指針錯誤,但它是當Drools核心不存在,他們得到了約15更多的錯誤。我找不到任何人只收到這些2.我假設我錯過了一些安裝件,但我不知道它。另外,我在包資源管理器中可以看到Drools庫中的slf4j-api.jar文件。

我對Java很新,所以向我發問,我會發布你需要看到的片段。

我可以在包資源管理器中導航到「org.kie.api.runtime.rule.EntryPoint.insert(Object arg0)」放置它的地方,但是我看到一個頁面上寫着「Class File Editor」,然後是「來源未找到「

+0

「新鮮安裝」 - 它沒有關係。你下載的代碼幾乎總是需要調整一下。看看kContainer ......顯然它在第16行返回null,所以請調查原因。 –

+0

@Martin這就是我所看到的。我認爲我錯過了一些文件?謝謝你的幫助。 http://i.imgur.com/dTL9EX5.jpg – DiscontentDisciple

+0

1.我不認爲你錯過了一個文件。您無法看到源代碼的原因是因爲JAR不能被讀取。由於我不知道「流口水」是什麼,我無法幫助你。 3.繼續搜索網絡,直到你在這裏得到答案。在你的地方,我會開始尋找'drools:newKieSession返回null'或類似的東西。 4.當然,打印到屏幕上,確保它是空的,不要相信我太多:) –

回答

6

似乎需要提供三個值。可以使用嚮導放置的「Drools運行時」面板上的三個文本框,也可以手動更新項目中的pom.properties文件。已爲我工作的三個值是:

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

在我的情況下pom.properties文件位於C:\用戶\克拉克\工作區\ HelloWorld的\ SRC \主\資源\ META-INF \行家「HellowWorld」是我給這個項目的名字。

最基本的答案,我上面已經闡述了,可以在這裏找到:Getting null pointer exception while running helloworld in drools

[在原來的問題中的代碼是由Drools項目嚮導生成。 File ... New ... Project ... Drools Project ...然後檢查「New Drools Project」中的前兩個複選框]

0

這些項目使用Maven進行配置。您需要:

  1. 在項目的根目錄中,從命令行運行「mvn eclipse:eclipse」。
  2. 安裝m2e Eclipse插件,以便您的Eclipse IDE可以識別Maven項目結構並加載相應的依賴關係。