Неизвестное имя KieSession в drools 6.0 (при попытке добавить drools в существующий проект maven / eclipse)

Я пытаюсь адаптировать drools6.0 для существующей базы кода (это проект maven под затмением). Мне не нужно было изучать слюни или мавена раньше (хотя они были частью моего предыдущего проекта), достаточно сказать, что я потерялся в том, что я хотел сделать. Исходя из моего понимания (поиск в Google), файлы классов Java подключаются к правилам, основанным на имени пакета (?). Это решает проблемы времени компиляции. Но я вижу исключение нулевого указателя во время выполнения. Чтобы адаптировать drools в мою существующую базу кода, я: 1) создал проект helloworld drools, успешно запустил его 2) скопировал файл java в мой существующий пакет, 3) создал файл правил в Eclipse с правильным пакетом: FIle-> New-> other -> Правило Ресурс; 3) преобразовать существующий проект в пакет drools, щелкнув правой кнопкой мыши проект и сконфигурировать-> преобразовать в проект drools

Это все решает проблемы компиляции, но я получаю следующую ошибку во время выполнения

[main] ERROR org.drools.compiler.kie.builder.impl.KieContainerImpl - Unknown KieSession    name: ksession-rules
java.lang.NullPointerException
at main.java.com.harmonia.cbm.afloat.dataaquisition.dql.DroolsTest.main(DroolsTest.java:23)

Это потому, что ksession, который возвращается из kcontainer, имеет значение null и выдает исключение нулевого указателя в последней строке

KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
// above line is returning null
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
kSession.insert(message);

Уже потратил больше суток, пытаясь выяснить, как работает слюни и как это можно исправить. Pl предложить

1) я принимаю правильный подход для преобразования существующего проекта в проект drools. Я хочу всю существующую функциональность моей кодовой базы; но хочу добавить подход, основанный на правилах, для будущих улучшений. Наткнулся на следующую ссылку, но не ясно, поможет ли это моей ситуацииhttp://drools.46999.n3.nabble.com/Retrofitting-a-project-with-JBoss-Rules-td48656.html

2) Любые полезные учебники слюней в лучшем понимании следующих 3 строк (кроме документации по Java)

KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");

3) Любые подсказки по разрешению исключения нулевого указателя (при условии, что я использую правильный и простой подход для преобразования существующего проекта в проект drools)

ОБНОВИТЬ @ Дэвид: спасибо за подробный пост. Я понял, что преобразование существующего проекта в проект maven, хотя и работает, мне не понравилось, поскольку существующая структура каталогов / наименование сохраняется (скорее всего, отличается от того, что maven создает по умолчанию). Я разместил альтернативное решение, где я думал, что эта проблема связана с проблемами classpathhttp://drools.46999.n3.nabble.com/Null-pointer-exception-when-adding-drools-to-existing-project-td4027944.html#a4028011

Ответы на вопрос(6)

Ваш ответ на вопрос