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 -
Meine Umgebung folgt -
Ich habe bereits folgende Links durchgespielt, aber kein Glück (meistens versuchen sie nicht, das zu tun, was ich bin) -
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.
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%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.