ClassNotFoundException occurs when launching business-application with mvn spring-boot:run

Solution Unverified - Updated -

Issue

When creating self-contained spring-boot kie-server jar with kieserver.classPathContainer=true, the application works with a fat-jar but fails when executing with mvn spring-boot:run with ClassNotFoundException like below thrown.

2023-06-22 14:49:23.156 ERROR 189745 --- [           main] o.k.server.services.impl.KieServerImpl   : Error creating container 'business-application-kjar-1.0' for module 'com.company:business-application-kjar:1.0'

java.lang.RuntimeException: java.lang.ClassNotFoundException: com.company.example_process_1a.RulesE898CB354FBB2BBE30E2B018EA3CF48C
    at org.drools.modelcompiler.CanonicalKieModule.getModels(CanonicalKieModule.java:426) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.modelcompiler.CanonicalKieModule.getModelForKBase(CanonicalKieModule.java:459) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.modelcompiler.CanonicalKieModule.createKiePackages(CanonicalKieModule.java:303) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.modelcompiler.CanonicalKieModule.lambda$createKieBase$1(CanonicalKieModule.java:234) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) ~[na:na]
    at org.drools.modelcompiler.CanonicalKieModule.createKieBase(CanonicalKieModule.java:234) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.compiler.kie.builder.impl.KieContainerImpl.createKieBase(KieContainerImpl.java:475) ~[drools-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.compiler.kie.builder.impl.KieContainerImpl.getKieBase(KieContainerImpl.java:439) ~[drools-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.drools.DroolsKieServerExtension.createContainer(DroolsKieServerExtension.java:102) ~[kie-server-services-drools-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.impl.KieServerImpl.createContainer(KieServerImpl.java:343) ~[kie-server-services-common-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.impl.ContainerManager.installContainersSync(ContainerManager.java:49) ~[kie-server-services-common-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.impl.ContainerManager.installContainers(ContainerManager.java:35) ~[kie-server-services-common-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.impl.ImmutableContainerStartupStrategy.startup(ImmutableContainerStartupStrategy.java:58) ~[kie-server-services-common-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.services.impl.KieServerImpl.init(KieServerImpl.java:208) ~[kie-server-services-common-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.springboot.ImmutableSpringBootKieServerImpl.init(ImmutableSpringBootKieServerImpl.java:64) ~[kie-server-spring-boot-autoconfiguration-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.kie.server.springboot.autoconfiguration.KieServerAutoConfiguration.kieServer(KieServerAutoConfiguration.java:125) ~[kie-server-spring-boot-autoconfiguration-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
        :
        :
Caused by: java.lang.ClassNotFoundException: com.company.example_process_1a.RulesE898CB354FBB2BBE30E2B018EA3CF48C
    at org.drools.reflective.classloader.ProjectClassLoader.tryDefineType(ProjectClassLoader.java:205) ~[drools-core-reflective-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.reflective.classloader.ProjectClassLoader.loadType(ProjectClassLoader.java:195) ~[drools-core-reflective-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.reflective.classloader.ProjectClassLoader.loadClass(ProjectClassLoader.java:149) ~[drools-core-reflective-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[na:na]
    at org.drools.modelcompiler.CanonicalKieModule.createInstance(CanonicalKieModule.java:167) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.modelcompiler.CanonicalKieModule.initModelsFromProjectDescriptor(CanonicalKieModule.java:434) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
    at org.drools.modelcompiler.CanonicalKieModule.getModels(CanonicalKieModule.java:424) ~[drools-model-compiler-7.67.0.Final-redhat-00008.jar:7.67.0.Final-redhat-00008]
   ... 45 common frames omitted

Environment

  • Red Hat Process Automation Manager (RHPAM)
    • 7.13.0 - 7.13.3
  • Red Hat Decision Manager (RHDM)
    • 7.13.0 - 7.13.3

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content