我正在使用JBoss AS 7.1.1.Final與KIE Workbench/Drools 6.0.1,Java和Eclipse(Kepler)。爲什麼加載Drools 6 KIE JAR成代碼失敗?
我需要KIE Workbench(以前稱爲Drools Guvnor)讓人們用事實和規則以圖形方式創建/編輯瓶子,然後將其作爲jar存儲在本地maven存儲庫中。這些罐子(以前稱爲pkg's)我希望以編程方式訪問並將它們加載到我的Drools應用程序中。該應用程序甚至可以(雖然不是preferedly)在同一個工作站上運行,因此訪問存儲庫可以
一)網址: http://localhost:8080/drools-wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar
b)以文件路徑/類路徑: /my/folder/jboss-as-7.1.1.Final/bin/repositories/kie/com/myprojects/myProject/LATEST/myProject-LATEST.jar
我做不要創建/編譯規則等在我的代碼,無論是動態加載一個.drl文件動態 - 準備好的罐子是我需要加載,與 如com.myprojects:myProject:最新作爲標識符。
我試試這個(根據文件)
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)
我的問題是:爲什麼沒有找到回購的罐子?在KIE WB中創建它時,KieModule不是KieModule中的jar和jar自動錶示的代碼庫嗎? 或者我必須改變的Maven回購的默認ReleaseID,這與
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來加載的jar:
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):
第一個問題...有一個Jar在下面的lo陽離子?'http:// localhost:8080/drools -wb-as7.0/maven2/com/myprojects/myProject/LATEST/myProject-LATEST.jar' – Steve
是的,我也可以通過瀏覽器下載它。 – user3173088
kie-ci.jar是否在您的應用程序的類路徑中? – Steve