如何在客户端应用程序中使用Drools工作台规则

如何在客户端应用程序中使用Drools工作台规则,drools,Drools,我已经在tomcat服务器上部署了drools workbench…它运行得很好…现在我想在客户端应用程序上加载并启动workbench上可用的所有规则。此外,当修改规则时,必须在客户端更新规则 目前,客户端应用程序正在drools 6.0.1上运行 我已经尝试了下面的代码 String url = "http://localhost:4040/kie-drools-wb-distribution-wars-6.0.1.Final-tomcat7.0/maven2/com/dcproje

我已经在tomcat服务器上部署了drools workbench…它运行得很好…现在我想在客户端应用程序上加载并启动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);
但当我在workbench上更新规则时,它会抛出如下异常


13:43:16.853[Timer-0]INFO o.d.c.k.b.impl.KieRepositoryImpl-KieModule已添加:ZipKieModule[ReleaseId=com.dcproject1:dcproject1:1.0.1file=E:\Users\kjariwala1.m2\repository\com\dcproject1\dcproject1\1.0.1\dcproject1.jar]线程计时器中的异常-0 java.lang.NullPointerException位于org.drools.compiler.kie.builder.impl.kieecontainerImpl.UpdateVersionKieecontainerImpl.java:161位于org.kie.scanner.kierepositoryScannerpl.UpdatekieModulekierePositoryScanneImpl.java:214位于org.kie.scanner.KieRepositoryScannerImpl.ScannowkierepositoryScannerScannerImpl.java:204位于org.kie.scanner.KieRepositoryScannerImpl$scanstask.runKieRepositoryScannerImpl.java:193在java.util.TimerThread.mainLoopTimer.java:555在java.util.TimerThread.runTimer.java:505

我最近得到了类似的结果。我正在使用drools 6.1.Final。我现在不使用kie wb,只使用maven。 上面的代码和我的代码之间的主要区别在于没有为规则工件传递显式url。我将系统属性kie.maven.settings.custom设置为指向定义maven存储库的settings.xml文件。我认为您可以对嵌入在kie wb中的存储库执行相同的操作