I am new to drools and jbpm
Just created a simple “Hello world” sample with drools version ‘8.44.0.Final’, Java 21
And it works fine:
Gradle dependencies:
implementation 'org.drools:drools-compiler:8.44.0.Final'
implementation 'org.drools:drools-core:8.44.0.Final'
implementation 'org.drools:drools-mvel:8.44.0.Final'
DRL:
rule "Hello world"
when
then
System.out.println("Hello DRL");
end
Run Class:
public class TestDRL
{
public static void main(String[] args)
{
String filePath = "META-INF/rules/test.drl";
InputStream inputStream = TestDRL.class.getClassLoader().getResourceAsStream(filePath);
KieHelper kieHelper = new KieHelper();
kieHelper.addResource(ResourceFactory.newInputStreamResource(inputStream), ResourceType.DRL);
KieSession kieSession = kieHelper.build().newKieSession();
kieSession.fireAllRules();
kieSession.dispose();
}
}
Then, I created a simple “Hello world” bpmn2 sample:
public class Testbpmn
{
public static void main(String[] args)
{
String filePath = "META-INF/rules/test.bpmn2";
InputStream inputStream = Testbpmn.class.getClassLoader().getResourceAsStream(filePath);
KieHelper kieHelper = new KieHelper();
kieHelper.addResource(ResourceFactory.newInputStreamResource(inputStream), ResourceType.BPMN2);
KieSession kieSession = kieHelper.build().newKieSession();
kieSession.startProcess("StartEvent_1");
kieSession.dispose();
}
}
But getting this exception:
Exception in thread "main" java.lang.RuntimeException: Unknown resource type: ResourceType = 'jBPM BPMN2 Language'
at org.kie.internal.services.KieAssemblersImpl.addResourceBeforeRules(KieAssemblersImpl.java:48)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.buildAssemblerResourcesBeforeRules(CompositeKnowledgeBuilderImpl.java:182)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:112)
at org.drools.compiler.builder.impl.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:104)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:270)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.buildKnowledgePackages(AbstractKieProject.java:216)
at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:80)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildKieProject(KieBuilderImpl.java:282)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:248)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:195)
at org.drools.compiler.kie.builder.impl.KieBuilderImpl.buildAll(KieBuilderImpl.java:201)
at org.kie.internal.utils.KieHelper.getKieContainer(KieHelper.java:104)
at org.kie.internal.utils.KieHelper.build(KieHelper.java:84)
at org.kie.internal.utils.KieHelper.build(KieHelper.java:79)
Tried to add the jbpm dependencies of the latest version (In addition to the DRL dependencies):
implementation 'org.jbpm:jbpm-flow-builder:7.74.1.Final'
implementation 'org.jbpm:jbpm-bpmn2:7.74.1.Final'
But still getting the same issue.
I see that jbpm have dependency to drools, now if I remove my drools dependency, then the drools 7.74.1.Final seems not to be compatible with Java 21?
omard119 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.