Camunda is not working in spring boot

Hi,

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

Hello my friend! Welcome to the community!

Check the compatibility of the Camunda x Spring versions you are using, maybe this could be a problem.

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

Thanks for your answer. So as long as I understand my spring boot version is not compatible with the camunda. I’m using 3.0.9 and as long as I understand from the documentation you mentioned, camunda 7.19 is compatible only with 2.7.x, am I wrong?

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