我已经在tomcat服务器上部署了drools workbench ...它运行良好....现在我想在客户端应用程序加载并激活工作台上的所有可用规则。此外,修改规则时,必须在客户端更新规则.....
目前,客户端应用程序正在drools 6.0.1上运行。
我试过以下代码......
String url = "http://localhost:4040/kie-drools-wb-distribution-wars-6.0.1.Final-tomcat7.0/maven2/com/dcproject1/dcproject1/LATEST/dcproject1-LATEST.jar";
// make sure you use "LATEST" here!
//ReleaseIdImpl releaseId = new ReleaseIdImpl("de.test", "Test", "LATEST");
ReleaseIdImpl releaseId = new ReleaseIdImpl("com.dcproject1", "dcproject1", "LATEST");
KieServices ks = KieServices.Factory.get();
ks.getResources().newUrlResource(url);
KieContainer kieContainer = ks.newKieContainer(releaseId);
// check every 5 seconds if there is a new version at the URL
KieScanner kieScanner = ks.newKieScanner(kieContainer);
kieScanner.start(15000L);
但是当我在工作台上更新我的规则时,它会抛出异常,如...
13:43:16.853 [Timer-0] INFO odckbimpl.KieRepositoryImpl - 添加了KieModule:ZipKieModule [ReleaseId = com.dcproject1:dcproject1:1.0.1file = E:\ Users \ kjariwala1.m2 \ repository \ com \ dcproject1 \ dcproject1 \ 1.0.1 \ dcproject1-1.0.1.jar]线程中的异常" Timer-0"位于org.kie的org.kie.scanner.KieRepositoryScannerImpl.updateKieModule(KieRepositoryScannerImpl.java:214)org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion(KieContainerImpl.java:161)的java.lang.NullPointerException。 scan.KieRepositoryScannerImpl.scanNow(KieRepositoryScannerImpl.java:204)atg.kie.scanner.KieRepositoryScannerImpl $ ScanTask.run(KieRepositoryScannerImpl.java:193)at java.util.TimerThread.mainLoop(Timer.java:555)at java.util .TimerThread.run(Timer.java:505)
答案 0 :(得分:0)
我最近有这样的工作。我正在使用drools 6.1.Final。我目前没有使用kie-wb,只是maven。 上面和我的代码之间的主要区别在于,而不是为规则工件传递显式URL。我将系统属性kie.maven.settings.custom设置为指向定义了maven存储库的settings.xml文件。我认为你可以对嵌入在kie-wb中的存储库做同样的事情。