I am using a multi-module project that uses jdk 21, spring-boot 3.2.4 and cammunda 7.21.0.
app
-- bootstrap (with dependency of workflow, h2 and org.springframework.boot:spring-boot-starter-web)
-- workflow (with dependency of org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp)
when I build and boot it with
java -jar bootstrap/build/libs/bootstrap.jar
it fails with the exception
org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'Deployment of Process Application org.example.camunda.WorkflowConfig' => 'Deployment of process archive 'null': ENGINE-08006 IOException while scanning archive '/nested:/bootstrap.jar'.
at org.camunda.bpm.engine.spring.application.SpringProcessApplication.onApplicationEvent(SpringProcessApplication.java:105) ~[camunda-engine-spring-6-7.21.0.jar!/:7.21.0]
at org.camunda.bpm.engine.spring.application.SpringProcessApplication.onApplicationEvent(SpringProcessApplication.java:52) ~[camunda-engine-spring-6-7.21.0.jar!/:7.21.0]
at org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication$$SpringCGLIB$$0.onApplicationEvent(<generated>) ~[camunda-bpm-spring-boot-starter-7.21.0.jar!/:7.21.0]
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:185) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:178) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:156) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:451) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:384) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:984) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.1.5.jar!/:6.1.5]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.4.jar!/:3.2.4]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.4.jar!/:3.2.4]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.4.jar!/:3.2.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.4.jar!/:3.2.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.4.jar!/:3.2.4]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.4.jar!/:3.2.4]
at de.gefa.roe.calculator.boot.RoeCalculatorApplication.main(RoeCalculatorApplication.java:14) ~[!/:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[roe-calculator-service.jar:na]
at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[roe-calculator-service.jar:na]
at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[roe-calculator-service.jar:na]
Caused by: java.nio.file.NoSuchFileException: nested:/bootstrap.jar
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92) ~[na:na]
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106) ~[na:na]
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111) ~[na:na]
at java.base/sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes(UnixFileAttributeViews.java:55) ~[na:na]
at java.base/sun.nio.fs.UnixFileSystemProvider.readAttributes(UnixFileSystemProvider.java:171) ~[na:na]
at java.base/sun.nio.fs.LinuxFileSystemProvider.readAttributes(LinuxFileSystemProvider.java:99) ~[na:na]
at java.base/java.nio.file.Files.readAttributes(Files.java:1853) ~[na:na]
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1445) ~[na:na]
at java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:724) ~[na:na]
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:251) ~[na:na]
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:180) ~[na:na]
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:194) ~[na:na]
at org.camunda.bpm.container.impl.deployment.scanning.ClassPathProcessApplicationScanner.handleArchive(ClassPathProcessApplicationScanner.java:165) ~[camunda-engine-7.21.0.jar!/:7.21.0]
... 37 common frames omitted
This works when I boot it with
./gradlew :bootstrap:bootRun
What I observed is, for spring-boot v 3.1.x it used to find process.xml with jar:file like
ENGINE-08024 Found processes.xml file at jar:file:/app.jar!/BOOT-INF/lib/workflow.jar!/META-INF/processes.xml
With spring-boot 3.2.x it fails with jar:nested
ENGINE-08024 Found processes.xml file at jar:nested:/app.jar!/BOOT-INF/lib/workflow.jar!/META-INF/processes.xml