почему загрузка Drools 6 KIE JAR в код не выполняется?

Я использую JBoss AS 7.1.1.Final с KIE Workbench / Drools 6.0.1., Java и Eclipse (Kepler).

Мне нужен KIE Workbench (ранее Drools Guvnor), чтобы люди могли графически создавать / редактировать jar-файлы с фактами и правилами, а затем сохранять их как jar-файлы в локальном репозитории maven. Эти jar-файлы (ранее pkg) я хочу затем получить программный доступ и загрузить их в свое приложение Drools. Приложение может даже (хотя и не предпочтительно) запускаться на той же рабочей станции, поэтому доступ к репозиторию может быть

а) по URL: http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar

б) по пути к файлу / пути к классам: /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)

У меня вопрос: почему не найдена банка из репо? Разве KieModule не представляет банку и банку автоматически в репозитории, как я создал ее в KIE WB? Или мне нужно изменить ReleaseID по умолчанию для Maven Repo, который распечатан с помощью

KieRepository repo = ks.getRepository();
repo.getDefaultReleaseId()

решает

org.default:artifact:1.0.0-SNAPSHOT ?

Это проблема Maven? Что я ошибаюсь?

Здесь содержимое банок pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.myprojects</groupId>
  <artifactId>myProject</artifactId>
  <version>LATEST</version>
  <name>myProject</name>
  <repositories>
    <repository>
      <id>guvnor-m2-repo</id>
      <name>Guvnor M2 Repo</name>
      <url>http://localhost:8080/drools-wb-as7.0/maven2/</url>
    </repository>
  </repositories>
</project>

Я также пробовал использовать этот код для загрузки банки по 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):

динамически добавлять drls и т. д.

динамически загружать диаграммы


person user3173088    schedule 08.01.2014    source источник
comment
Первый вопрос ... есть ли банка в следующем месте? http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar   -  person Steve    schedule 13.01.2014
comment
Да, есть, тоже могу скачать через браузер.   -  person user3173088    schedule 13.01.2014
comment
Находится ли kie-ci.jar в пути к классам вашего приложения?   -  person Steve    schedule 13.01.2014
comment
Да, это так. Извините, был далеко за кофе ...   -  person user3173088    schedule 13.01.2014
comment
Привет, какую версию слюны вы используете? Не могли бы вы попробовать еще раз с 6.0.1.Final?   -  person Anton Giertli    schedule 11.02.2014


Ответы (1)


В моем случае оказалось, что

<dependency>
  <groupId>org.kie</groupId>
  <artifactId>kie-ci</artifactId>
</dependency>

отсутствовал в моем POM

person m c    schedule 24.02.2015