I’m facing a problem with integrating camunda into spring boot app. Below you can find the error, that I’m facing. My spring boot version is 3.0.9 and the following dependencies are configured for camunda:
implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter:7.19.0'
implementation 'org.camunda.bpm.extension.springboot:camunda-bpm-spring-boot-starter:2.1.2'
Also I want to mention that in the SpringBootApllication class, i have the following anotation: @EnableProcessApplication. I don’t know what is the problem, I will be extremely happy if you can point out where is the problem, thanks in advance.
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [com.test.ServiceApplication]: Failed to introspect Class [org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication$WebApplicationConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@531d72ca]
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:524)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:304)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:196)
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:164)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:415)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:310)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293)
at com.test.ServiceApplication.main(OrderServiceApplication.java:26)
Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.camunda.bpm.spring.boot.starter.SpringBootProcessApplication$WebApplicationConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@531d72ca]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483)
at org.springframework.util.ReflectionUtils.doWithLocalMethods(ReflectionUtils.java:320)
at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:149)
at org.springframework.context.annotation.ConfigurationClassParser.retrieveBeanMethodMetadata(ConfigurationClassParser.java:396)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:319)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
at org.springframework.context.annotation.ConfigurationClassParser.processMemberClasses(ConfigurationClassParser.java:365)
at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:265)
at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
at org.springframework.context.annotation.ConfigurationClassParser.processImports(ConfigurationClassParser.java:514)
... 17 common frames omitted
Caused by: java.lang.NoClassDefFoundError: javax/servlet/ServletContext
at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402)
at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465)
... 26 common frames omitted
Another situation I checked, if you have the idea of accessing camunda’s webapps (cockpit, admin, tasklist) you must add the WEBAPP dependency as well.
implementation ‘org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp:7.19.0’
Also the JDBC dependency to do database transactions and Camunda REST to access the REST API.
implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter:7.19.0'
implementation 'org.camunda.bpm.extension.springboot:camunda-bpm-spring-boot-starter:2.1.2'
implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-webapp:7.19.0'
implementation 'org.camunda.spin:camunda-spin-dataformat-all:1.10.0'
implementation 'org.camunda.connect:camunda-connect-core:1.5.0'
implementation 'org.camunda.bpm.springboot:camunda-bpm-spring-boot-starter-rest:7.19.0'
Do a better search, but I think these are the ones… you just have to check which bank you are going to use to install the correct dependency.
Haaa and I think I forgot to add the JDBC dependency to this list.
I hope this helps.
William Robert Alves
Hello my friend!
In a way, your comment is indeed correct…
As described on the Camunda website, in the link I sent you above, other versions might work to some extent, but they should be thoroughly tested. Therefore, I do not recommend their use.
I hope this helps.
William Robert Alves