AC Compatibility with Spring Boot 3

I’m trying to use your Atlassian Connect Java framework 3.0.2 together with the latest version of atlassian-connect-spring-boot-starter, which at the time of writing is also 3.0.2.

However, upon application launch, the following exception is thrown:

2023-03-06T16:03:15.292+01:00  WARN 25078 --- [           main] o.s.boot.SpringApplication               : Unable to close ApplicationContext

java.lang.IllegalStateException: Failed to introspect Class [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@251a69d7]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:483) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.util.ReflectionUtils.doWithMethods(ReflectionUtils.java:360) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.util.ReflectionUtils.getUniqueDeclaredMethods(ReflectionUtils.java:417) ~[spring-core-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.lambda$getTypeForFactoryMethod$1(AbstractAutowireCapableBeanFactory.java:750) ~[spring-beans-6.0.5.jar:6.0.5]
	at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1740) ~[na:na]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getTypeForFactoryMethod(AbstractAutowireCapableBeanFactory.java:749) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:682) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:653) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1632) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:559) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:531) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:658) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:650) ~[spring-beans-6.0.5.jar:6.0.5]
	at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1278) ~[spring-context-6.0.5.jar:6.0.5]
	at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:865) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:853) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:840) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:780) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:323) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.3.jar:3.0.3]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.3.jar:3.0.3]
	at engineering.divine.ApplicationServer.main(ApplicationServer.java:21) ~[classes/:na]
Caused by: java.lang.NoClassDefFoundError: javax/servlet/Filter
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method) ~[na:na]
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3402) ~[na:na]
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2504) ~[na:na]
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:465) ~[spring-core-6.0.5.jar:6.0.5]
	... 21 common frames omitted
**Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter**
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[na:na]
	... 25 common frames omitted

Spring Boot 3 moved from JEE (javax.) to Jakarta EE 9 (jakarta.), but your library still seems to rely on JEE. Please advise.

1 Like

Dear @divineengineering

I assume @epehrson can provide more details on the time plan. From what I saw in the commits they are working on it but compatibility with Spring 3 is not yet there.

Best regards

Andreas

Hi @andreas1 @divineengineering, thanks for reaching out!

Yes, we did a spike on Atlassian Connect Spring Boot(ACSB)'s upgrade with SpringBoot 3.0, and currently we are planning for this upgrade. More detailed comms will be posted shortly after we work out a timeline : )

Cheers,
Min

1 Like

That sounds excellent, thank you! Maybe you could state that in the documentation as well, I spent quite a few hours trying to get it to work together.

Thank you for your clarification, is it possible to share an estimate for compatibility with spring boot release date

Hi,

We have released the Spring Boot 3 compatible version of ACSB, please check this post and try it out :smiley:

2 Likes