2013-12-09 1 views
2

Консоль вывода:Drools HelloWorld Пример Свежее Установка Броски Null Pointer

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 Plugin.

Я видел других людей, получивших ошибку с нулевым указателем, но это когда Drools Core нет, и у него появляется еще около 15 ошибок. Я не могу найти никого, получающего только эти 2.

Я предполагаю, что я пропустил какую-то часть установки, но я не могу понять это. Кроме того, у меня есть файл slf4j-api.jar в библиотеке Drools, видимой в Проводнике пакетов.

Я довольно новичок в Java, поэтому снимайте мне вопросы, и я опубликую фрагменты, которые вам нужно увидеть.

Я могу перемещаться в Проводнике пакетов в "org.kie.api.runtime.rule.EntryPoint.insert (Object arg0)" разместить его вызов, но я вижу страницу с надписью "Редактор файлов классов", затем " Источник не найден "

+0

«Свежая установка» - это не важно. Код, который вы загружаете, почти всегда нуждается в небольшой настройке. Посмотрите на kContainer ... очевидно, что он возвращает нуль в строке 16, поэтому исследуйте причину. –

+0

@ Мартин Вот что я вижу. Я так понимаю, мне не хватает файла? Спасибо за вашу помощь. http://i.imgur.com/dTL9EX5.jpg – DiscontentDisciple

+0

1. Не думаю, что вам не хватает файла. Причина, по которой вы не видите источник, состоит в том, что JAR не читаются. 2. Я не могу вам помочь, так как я не знаю, что такое «слюни». 3. Продолжайте искать в Интернете, пока не получите ответ. На вашем месте я бы начал с поиска «drools: newKieSession return null» или чего-то подобного. 4. Конечно, напечатайте его на экране и убедитесь, что он пустой, и мне не слишком доверяют :) –

ответ

6

Кажется, что необходимо указать три значения. Можно либо использовать три текстовых поля на панели «Время выполнения выполнения», которую ставит мастер, либо вручную обновить файл pom.properties в проекте. Три значения, которые работают для меня являются:

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

В моем случае файл pom.properties находится в C: \ Users \ кларк \ рабочее пространство \ HelloWorld \ SRC \ главная \ ресурсы \ META-INF \ Maven где «HellowWorld» - это имя, которое я дал проекту.

Основной ответ, что я остановился на выше, можно найти здесь: Getting null pointer exception while running helloworld in drools

[Код, приведенный в исходный вопрос генерируется мастером проекта Drools. Файл ... Новый ... Проект ... Проект Drools ... затем проверьте два верхних флажка в «New Drools Project»]

0

Эти проекты используют Maven для их конфигурации. Вам необходимо либо:

  1. Запуск «mcln eclipse: eclipse» из командной строки, находясь в корне проекта.
  2. Установите плагин m2e Eclipse, чтобы ваша среда Eclipse могла распознавать структуры проекта Maven и загружать соответствующие зависимости.
Смежные вопросы