2016-07-14 19 views
1

Installierte Drools-Workbench 6.4.0 Definierte und definierte Regeln in der Workbench.Die Droben-Workbench-Regeln können nicht von der Java-Anwendung aus ausgeführt werden

Unter Ausnahme erhalten, wenn ich versuche, Regeln von Java-Anwendung auszuführen.

Gefolgt Online-Ressourcen und verwandten Fragen, aber immer noch nicht in der Lage, das Problem zu lösen.

This ist eine der verwandten Links.

Mein Java-Projekt Abhängigkeiten und Profil.

<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> 

mein Java-Code hier:

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"); 
} 

Kann mir jemand bitte helfen, ich bin fast 2 Tage sabbert und verbrachte dieses Problem zu lösen.

+0

Ist der Link funktioniert, wenn Sie es in Ihrem Browser setzen. Wenn es beginnt, das Glas herunter zu laden, dann wissen Sie, dass alles zu diesem Punkt funktioniert und das Problem in diesem Code liegt. –

Antwort

0

Es könnte sein, die URL, die Sie verwenden, versuchen Sie es auf sich ändernde:

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

heißt maven2 maven2b NICHT

dann versuchen, dass in einem Web-Browser. Wenn Sie Authentifizierung benötigen, funktioniert dies für mich, wenn Drools auf Tomcat gehostet wird und die Standardauthentifizierung aktiviert ist.

KieServices ks = KieServices.Factory.get(); 

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

Ich fand diesen Blogbeitrag sehr hilfreich, es könnte Ihnen helfen, obwohl Sie nicht Spring verwenden.

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