【问题标题】:Unable to execute drools workbench rules from java application无法从 Java 应用程序执行流口水工作台规则
【发布时间】:2016-07-14 07:18:28
【问题描述】:

在工作台中安装了drools workbench 6.4.0 Final并定义了指导规则。

如果尝试从 java 应用程序执行规则,则会出现以下异常。

Exception in thread "main" java.lang.RuntimeException: Cannot find KieModule: org.mydemo:myDemo:1.0
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:117)
at org.drools.compiler.kie.builder.impl.KieServicesImpl.newKieContainer(KieServicesImpl.java:111)
at com.test.Test.main(Test.java:51)

关注了在线资源和相关问题,但仍然无法解决问题。

This 是相关链接之一。

我的 java 项目依赖和配置文件。

  <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-ci</artifactId>
        <version>6.4.0.Final</version>
   </dependency>

   <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-compiler</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-core</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.kie</groupId>
      <artifactId>kie-internal</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.kie</groupId>
      <artifactId>kie-api</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-templates</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.drools</groupId>
      <artifactId>drools-decisiontables</artifactId>
      <version>6.4.0.Final</version>
       <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>com.thoughtworks.xstream</groupId>
      <artifactId>xstream</artifactId>
      <version>1.4.3</version>
       <scope>provided</scope>
    </dependency>

<profile>
  <activation>
    <activeByDefault>true</activeByDefault>
  </activation>
  <repositories>
    <repository>
      <id>guvnor-m2-repo</id>
      <name>Guvnor M2 Repo</name>
      <url>http://ip:8080/drools-wb/maven2/</url>
    </repository>
  </repositories>      
</profile>

我的 Java 代码在这里:

    public static void main(String[] args) {
    String url = "http://ip:8080/drools-wb/maven2wb/org/mydemo/myDemo/1.0/myDemo-1.0.jar";

    // make sure you use "LATEST" here!
    ReleaseIdImpl releaseId = new ReleaseIdImpl("org.mydemo", "myDemo", "1.0");

    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(5000L);
    // alternatively:
    // kieScanner.scanNow();

    Scanner scanner = new Scanner(System.in);
    while (true) {
        runRule(kieContainer);
        System.out.println("Press enter in order to run the test again....");
        scanner.nextLine();
    } 


}

private static void runRule(KieContainer kieKontainer) {
    StatelessKieSession kSession = kieKontainer.newStatelessKieSession("testSession");
    kSession.setGlobal("out", System.out);
    kSession.execute("testRuleAgain");
} 

谁能帮帮我,我是流口水的新手,花了将近 2 天的时间来解决这个问题。

【问题讨论】:

  • 将链接放入浏览器是否有效。如果它开始下载 jar,那么你就知道到那时一切正常,问题出在这段代码中。

标签: jboss drools drools-guvnor kie kie-workbench


【解决方案1】:

这可能是您使用的网址,请尝试将其更改为:

http://ip:8080/drools-wb/maven2/org/mydemo/myDemo/1.0/myDemo-1.0.jar

即maven2 不是 maven2b

然后在网络浏览器中尝试。如果您需要身份验证,那么当 Drools 托管在 Tomcat 上并打开基本身份验证时,这对我有用。

    KieServices ks = KieServices.Factory.get();

    KieResources resources = ks.getResources();
    UrlResource urlResource = (UrlResource) resources.newUrlResource(url);
    urlResource.setUsername("admin");
    urlResource.setPassword("admin");
    urlResource.setBasicAuthentication("enabled");

我发现这篇博文很有帮助,即使您不使用 Spring,它也可能对您有所帮助。

http://reypader.github.io/2016/01/06/spring-drools.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2012-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-14
    • 1970-01-01
    相关资源
    最近更新 更多