почему загрузка Drools 6 KIE JAR в код не удалась?
m с использованием JBoss AS 7.1.1. Наконец, с KIE Workbench / Drools 6.0.1., Java и Eclipse (Kepler).
Мне нужен KIE Workbench (ранее Drools Guvnor), чтобы люди могли графически создавать / редактировать банки с помощью Facts и Rules, а затем сохранять их в локальном репозитории maven. Эти банки (ранее pkg 's) затем я хочу получить программный доступ и загрузить их в мое приложение Drools. Приложение может даже (хотя и не предпочтительно) быть запущено на одной рабочей станции, поэтому доступ к хранилищу может быть
а) по URL:http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar
б) по filepath / classpath:/my/folder/jboss-as-7.1.1.Final/bin/repositories/kie/com/myprojects/myProject/LATEST/myProject-LATEST.jar
я делаюНЕ хочусоздания / компиляции правила и т. д. в моем коде, ни динамически загружать один файл .drl динамически - подготовленный JAR-это то, что мне нужно загрузить, например, с. com.myprojects: myProject: LATEST в качестве идентификатора.
Я пытаюсь это (согласно документации)
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.newKieContainer(
ks.newReleaseId("com.myprojects", "myProject", "LATEST"));
KieScanner kScanner = ks.newKieScanner( kContainer );
kScanner.start( 10000L );
KieSession kSession = kContainer.newKieSession("defaultKieSession");
kSession.insert( fact );
[...]
Тем не менее, это не так с исключением времени выполнения,
Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: com.myprojects:myProject:LATEST
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:86)
at com.myprojects.myproject.KieDroolsWBOnlinePuller.code(KieDroolsWBOnlinePuller.java:118)
at com.myprojects.myproject.KieDroolsWBOnlinePuller.main(KieDroolsWBOnlinePuller.java:40)
Мой вопрос: Почему баночка из репо не найдена? Isn»t KieModule - представление банки и банки автоматически в репо, как я ее создал в KIE WB? Или я должен изменить ReleaseID по умолчанию Maven Repo, который распечатан с
KieRepository repo = ks.getRepository();
repo.getDefaultReleaseId()
решает в
org.default:artifact:1.0.0-SNAPSHOT ?
Это проблема Maven? Что я делаю не так?
Здесь содержимое банок pom.xml
4.0.0
com.myprojects
myProject
LATEST
myProject
guvnor-m2-repo
Guvnor M2 Repo
http://localhost:8080/drools-wb-as7.0/maven2/
Я также пытался использовать этот код для загрузки банку по URL:
KieServices ks = KieServices.Factory.get();
ReleaseId releaseId = ks.newReleaseId("com.myprojects", "myProject", "LATEST");
KieResources kres = ks.getResources();
String url = "http://127.0.0.1:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar";
kres.newUrlResource( url );
KieContainer kContainer = ks.newKieContainer(releaseId);
KieSession kSession = kContainer.newKieSession("statelessDefautlKnowledgeSession");
[...]
Это не удалось за тем же исключением .... Есть идеи?
Некоторые ресурсы, которые я прочитал до сих порпост 6):