Question

hope someone can help me on this. So, I have some local bpmn processes that I imported from BPMS from RedHat. Now I am trying to execute them, as well as some .drl files, with no success on both tries. This is what I am trying:

     KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();
     Resource ruleFile = ResourceFactory.newFileResource("src/main/resources/rules0.drl");
     Resource ruleFile1 = ResourceFactory.newFileResource("src/main/resources/rules0.drl");
     Resource process1 = ResourceFactory.newFileResource("src/main/resources/Process1.bpmn");
     kbuilder.add(ruleFile,ResourceType.DRL);
     kbuilder.add(ruleFile1,ResourceType.DRL);
     kbuilder.add(process1,ResourceType.BPMN2);

     KnowledgeBase kbase = kbuilder.newKnowledgeBase();

     kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());                       StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();
     ksession.fireAllRules();
     ksession.startProcess(process1.getSourcePath());

But I have tried also :

    KieServices kServices = KieServices.Factory.get();
    KieRepository kRepository = kServices.getRepository();
    KieFileSystem kFileSystem = kServices.newKieFileSystem();
     Resource ruleFile = ResourceFactory.newFileResource("src/main/resources/rules0.drl");
    kFileSystem.write(ResourceFactory.newClassPathResource("rules0.drl"));
    KieBuilder kBuilder = kServices.newKieBuilder(kFileSystem);
    kBuilder.add(ruleFile,ResourceType.DRL);
    kBuilder.buildAll();

KieContainer kContainer =
    kServices.newKieContainer(kRepository.getDefaultReleaseId());
    KieBase kBase = kContainer.getKieBase();
    KieSession kisession = kBase.newKieSession();
    int tot = kisession.fireAllRules();

    System.out.println(""+tot);

totalRules is zero and the rule was never fired. In both cases, if I try to start processes(and only if) it will come to:

Exception in thread "main" java.lang.AbstractMethodError: org.jbpm.bpmn2.BPMN2ProcessProviderImpl.configurePackageBuilder(Lorg/kie/internal/builder/KnowledgeBuilder;)V

If I only try to fire rules then nothimg happens and tot is 0. The rules are simple rules that only execute a syso. Am I missing something here ? The rules are at src/main/resources/ on my maven project. Sorry for such a gigantic post!

Was it helpful?

Solution

it seems that you are not insert any fact at all, so I do believe that no rules will be fired, because there are no facts to evaluate basically. Regarding starting a process, it seems that there is some dependency missing in your project. Make sure that jbpm-bpmn2 is inside the classpath of your application

HTH

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top