I’m working on a java application that was using spring 4.1.8 and spring boot 1.4.0. I upgraded the dependencies to spring boot 3.3.1 and spring 6.1.10. After the upgrade I am getting the following exception, which I’m not sure why its there because that method is present within the jar file in the classpath.
<code> [java] Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.ThreadLocal org.springframework.core.NamedThreadLocal.withInitial(java.lang.String, java.util.function.Supplier)'
[java] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.<init>(XmlBeanDefinitionReader.java:139)
[java] at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:84)
[java] at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
[java] at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:713)
[java] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:595)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95)
[java] at de.mwit.mde.core.base.spring.MDEBuilderSpringWithWiring.init(MDEBuilderSpringWithWiring.java:68)
[java] at de.mwit.mde.core.base.MDEContainer.init(MDEContainer.java:114)
[java] at de.mwit.mde.core.base.MDEMain.main(MDEMain.java:63)
<code> [java] Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.ThreadLocal org.springframework.core.NamedThreadLocal.withInitial(java.lang.String, java.util.function.Supplier)'
[java] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.<init>(XmlBeanDefinitionReader.java:139)
[java] at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:84)
[java] at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
[java] at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:713)
[java] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:595)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95)
[java] at de.mwit.mde.core.base.spring.MDEBuilderSpringWithWiring.init(MDEBuilderSpringWithWiring.java:68)
[java] at de.mwit.mde.core.base.MDEContainer.init(MDEContainer.java:114)
[java] at de.mwit.mde.core.base.MDEMain.main(MDEMain.java:63)
</code>
[java] Exception in thread "main" java.lang.NoSuchMethodError: 'java.lang.ThreadLocal org.springframework.core.NamedThreadLocal.withInitial(java.lang.String, java.util.function.Supplier)'
[java] at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.<init>(XmlBeanDefinitionReader.java:139)
[java] at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:84)
[java] at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131)
[java] at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:713)
[java] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:595)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:144)
[java] at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:95)
[java] at de.mwit.mde.core.base.spring.MDEBuilderSpringWithWiring.init(MDEBuilderSpringWithWiring.java:68)
[java] at de.mwit.mde.core.base.MDEContainer.init(MDEContainer.java:114)
[java] at de.mwit.mde.core.base.MDEMain.main(MDEMain.java:63)
Below is the list of dependencies. I cannot share too much because of regulations. It would be great if someone could give some suggestion as to how to tackle this issue. I’m using JDK 21 to compile and run the application.
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-starter-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-messaging -->
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jms -->
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring-boot-version}</version>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-activemq -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>${spring-starter-version}</version>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<code> <dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-starter-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-messaging -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jms -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring-boot-version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-activemq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>${spring-starter-version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.13.2</version>
</dependency>
</code>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring-starter-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-messaging -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-tx -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jms -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring-boot-version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring-boot-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-activemq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>${spring-starter-version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
<version>4.13.2</version>
</dependency>