I’m encountering an issue with my Quarkus microservice that uses Kogito. The application fails to start when running in native mode, and I’m seeing the following error in the logs:
2024-06-06 07:16:59,136 ERROR [io.qua.run.Application] (main) Failed to start application (with profile [dev]): java.lang.RuntimeException: Failed to start quarkus ││ at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source) ││ at io.quarkus.runtime.Application.start(Application.java:101) ││ at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111) ││ at io.quarkus.runtime.Quarkus.run(Quarkus.java:71) ││ at io.quarkus.runtime.Quarkus.run(Quarkus.java:44) ││ at io.quarkus.runtime.Quarkus.run(Quarkus.java:124) ││ at io.quarkus.runner.GeneratedMain.main(Unknown Source) ││ Caused by: java.lang.UnsupportedOperationException: MVEL compilation is not supported in native image ││ at org.jbpm.workflow.instance.impl.MVELProcessHelper.lambda$static$1(MVELProcessHelper.java:40) ││ at org.jbpm.workflow.instance.impl.MVELProcessHelper.compileExpression(MVELProcessHelper.java:57) ││ at org.jbpm.workflow.core.impl.OutputExpressionAssignment.<init>(OutputExpressionAssignment.java:42) ││ at org.jbpm.workflow.core.impl.DataAssociation.buildInterpretedAssignment(DataAssociation.java:56) ││ at [email protected]/java.util.Arrays$ArrayList.forEach(Arrays.java:4204) ││ at org.jbpm.workflow.core.impl.DataAssociation.<init>(DataAssociation.java:46) ││ at com.epm.ticket.workflow.TicketWorkflowProcess.process(TicketWorkflowProcess.java:1116) ││ at org.kie.kogito.process.impl.AbstractProcess.get(AbstractProcess.java:250) ││ at org.kogito.process.impl.AbstractProcess.activate(AbstractProcess.java:192) ││ at com.epm.ticket.workflow.TicketWorkflowProcess.<init>(TicketWorkflowProcess.java:23) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_Bean.doCreate(Unknown Source) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_Bean.create(Unknown Source) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_Bean.create(Unknown Source) ││ at io.quarkus.arc.impl.AbstractSharedContext.createInstanceHandle(AbstractSharedContext.java:113) ││ at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:37) ││ at io.quarkus.arc.impl.AbstractSharedContext$1.get(AbstractSharedContext.java:34) ││ at io.quarkus.arc.impl.LazyValue.get(LazyValue.java:26) ││ at io.quarkus.arc.impl.ComputingCache.computeIfAbsent(ComputingCache.java:69) ││ at io.quarkus.arc.impl.AbstractSharedContext.get(AbstractSharedContext.java:34) ││ at io.quarkus.arc.impl.ClientProxies.getApplicationScopedDelegate(ClientProxies.java:21) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_ClientProxy.arc$delegate(Unknown Source) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_ClientProxy.arc_contextualInstance(Unknown Source) ││ at com.epm.ticket.workflow.TicketWorkflowProcess_Observer_Synthetic_1e642942b2e0ecd00ec189c20062bdec9100a46d.notify(Unknown Source) ││ at io.quarkus.arc.impl.EventImpl$Notifier.notifyObservers(EventImpl.java:346) ││ at io.quarkus.arc.impl.EventImpl$Notifier.notify(EventImpl.java:328) ││ at io.quarkus.arc.impl.EventImpl.fire(EventImpl.java:82) ││ at io.quarkus.arc.runtime.ArcRecorder.fireLifecycleEvent(ArcRecorder.java:155) ││ at io.quarkus.arc.runtime.ArcRecorder.handleLifecycleEvents(ArcRecorder.java:106) ││ at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy_0(Unknown Source) ││ at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent1144526294.deploy(Unknown Source) ││ ... 7 more
Here are some details about my setup:
Quarkus version: 3.2.11.Final-redhat-00001
Kogito version: 2.44.0.Alpha
Java version: 17
It seems that MVEL is not supported in native images…
To generate the native image i used the quarkus native container builder
What am I doing wrong?
Flo is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.