drools-6 (kie) Automatisches Scannen (ab Frühjahr) von Modulen und Sessions von kie-Workbench-Artefakten

8

Ich versuche eine web (spring-mvc) -Anwendung mit kie (Drools 6) zu erstellen, die via Injektion integriert ist. Ich habe Kie Workbench verwendet, um einen Arbeitsablauf zu erstellen, der eingehalten und implementiert wurde. Ich habe einen Verweis auf dieses Artefakt in der pom.xml meines Projekts hinzugefügt und das lokale kie-workbench-Repository hinzugefügt wie in dieser Blogpost und es funktioniert gut (zieht das Artefakt als Abhängigkeit in mein Maven / Spring-Projekt ein). Was ich versuche zu tun ist die Kiensession in einen meiner Dienst als Abhängigkeit mit folgenden Ausschnitt injizieren -

%Vor%

In meiner root-context.xml habe ich den kie-Namespace sowie den Verweis auf xsd hinzugefügt. Ich habe org.kie.spring.KModuleBeanFactoryPostProcessor sowie per Drools Dokumentation hinzugefügt. Ich versuche, CDI-Injektion für KSession Scannen und Injektion (es funktioniert bereits für meine anderen Komponenten in demselben Projekt, mit @Inject). Bisher bekomme ich immer "Keine qualifizierende Bean vom Typ [org.kie.api.runtime.KieSession] gefunden für Abhängigkeit" -Fehler. Sieht so aus, als ob der Frühling nicht in der Lage ist, die verfügbaren kie Module und Sitzungen darin zu scannen. Brauchen Sie Hilfe beim Folgen -

  1. Wird CDI inject wirklich mit dem Frühling unterstützt? Muss ich kmodules und kession explizit as konfigurieren hier erwähnt ?
  2. Fehle ich hier etwas, was das Scannen und die Injektion funktionieren lassen sollte?

Meine Umgebung folgt -

  1. Frühling 3.2.6-RELEASE (einschließlich webmvc und andere Komponenten)
  2. kie-api-6.0.1.FINAL
  3. kie-spring-6.0.1.FINAL
  4. kie-internal-6.0.1.FINAL

Ich habe bereits folgende Links durchgespielt, aber kein Glück (meistens versuchen sie nicht, das zu tun, was ich bin) -

  1. Loading Drools / KIE Workbench-Artefakte direkt aus dem Repository
  2. warum lädt das Laden von 6 KIE JAR in Code scheitern?

Ich werde es schätzen, wenn mich jemand anführen kann, was hier fehlen könnte oder ob es keine andere Möglichkeit gibt, als alle Konfigurationsdateien von kmodules / ksessions explizit zu definieren.

    
Avnish 23.01.2014, 08:49
quelle

3 Antworten

4

Ich hatte das gleiche Problem und habe hier eine Lösung gefunden: Ссылка

Grundsätzlich müssen Sie ApplicationContext anstelle von kieSession injizieren und xml bean manuell holen.

TniServiceImpl.java

%Vor%

root-context.xml

%Vor%

Hoffe, das hilft.

UPDATE:

Eine andere Möglichkeit, dies zu erreichen, besteht darin, xml identisch zu halten und statt KieSession zu injizieren, KieBase zu injizieren. Erstellen Sie dann mit der Instanz von KieBase neue KieSessions.

%Vor%     
Perazzo 13.03.2014, 11:30
quelle
0

Die obige Antwort funktioniert nicht mit Federmvc. Ich habe festgestellt, dass dies ein Fehler in den vorhandenen Drools ist und sie beheben es in der nächsten Version. Ich stehe an diesem Punkt fest, da ich DROOLS im Batch-Modus verwende, aber ich möchte, dass es in einem REST-Service verwendet wird, der auf der Websphere gehostet wird. Die obige Lösung funktioniert perfekt in einem Batch-Programm.

    
user1456599 21.03.2014 21:43
quelle
0

Dies ist, was ich mit der neuesten Spring MVC (Spring Boot) arbeiten

%Vor%

und darunter ist die kmodule.xml

%Vor%

Schließlich ist alles, was Sie in Ihrem Controller tun,

%Vor%

hoffe das hilft diesen Leuten immer noch Probleme

    
srb 16.06.2017 20:13
quelle

Tags und Links