Spring Boot 2.4.7升级至2.6集成Ignite、Tomcat启动报错
问题场景
运行环境
- JDK 11
- Ignite 版本:2.13.0
- Tomcat 版本:9.0.54
故障现象
将Spring Boot从2.4.7版本升级到2.6版本后,应用启动失败,先后抛出两类异常:
- 启动阶段抛出
java.lang.IllegalStateException: Cannot load configuration class: com.mcafee.gti.cache.config.ignite.IgniteConfig,根因为java.lang.ClassNotFoundException,无法找到Ignite配置类 - 上下文关闭阶段抛出
org.springframework.beans.factory.CannotLoadBeanClassException,无法加载名称为tomcatServerCustomizer的Bean对应的类com.mcafee.gti.cache.server.TomcatServerCustomizer,根因同样是ClassNotFoundException
完整异常堆栈
2022-06-17 08:10:46,102|ERROR|gti-proxy-cache|LOCAL|unknown datacenter|reputation-service-gtiproxy--0-0-1--gtiproxy-585b4589-sk7xn/10.100.167.133|SpringApplication:835 - [main]|null||Application run failed java.lang.IllegalStateException: Cannot load configuration class: com.mcafee.gti.cache.config.ignite.IgniteConfig at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:415) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:268) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:325) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:147) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:745) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:420) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.8.jar!/:2.6.8] at com.mcafee.gti.cache.Application.main(Application.java:57) ~[classes!/:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[gti-proxy-cache.jar:?] Caused by: java.lang.ClassNotFoundException: com.mcafee.gti.cache.config.ignite.IgniteConfig at java.net.URLClassLoader.findClass(URLClassLoader.java:476) ~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?] at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[gti-proxy-cache.jar:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?] at java.lang.Class.forName0(Native Method) ~[?:?] at java.lang.Class.forName(Class.java:398) ~[?:?] at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:469) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:411) ~[spring-context-5.3.20.jar!/:5.3.20] ... 20 more 2022-06-17 08:10:46,299|WARN|gti-proxy-cache|LOCAL|unknown datacenter|reputation-service-gtiproxy--0-0-1--gtiproxy-585b4589-sk7xn/10.100.167.133|SpringApplication:807 - [main]|null||Unable to close ApplicationContext org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.mcafee.gti.cache.server.TomcatServerCustomizer] for bean with name 'tomcatServerCustomizer' defined in URL [jar:file:/home/repserv/opt/webapp/gti-proxy-cache.jar!/BOOT-INF/classes!/com/mcafee/gti/cache/server/TomcatServerCustomizer.class]; nested exception is java.lang.ClassNotFoundException: com.mcafee.gti.cache.server.TomcatServerCustomizer at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1539) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:704) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:674) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1670) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doGetBeanNamesForType(DefaultListableBeanFactory.java:570) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:542) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:667) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:659) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1300) ~[spring-context-5.3.20.jar!/:5.3.20] at org.springframework.boot.SpringApplication.getExitCodeFromMappedException(SpringApplication.java:878) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.getExitCodeFromException(SpringApplication.java:866) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.handleExitCode(SpringApplication.java:853) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.handleRunFailure(SpringApplication.java:793) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:317) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1317) ~[spring-boot-2.6.8.jar!/:2.6.8] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-2.6.8.jar!/:2.6.8] at com.mcafee.gti.cache.Application.main(Application.java:57) ~[classes!/:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?] at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[gti-proxy-cache.jar:?] at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[gti-proxy-cache.jar:?] Caused by: java.lang.ClassNotFoundException: com.mcafee.gti.cache.server.TomcatServerCustomizer at java.net.URLClassLoader.findClass(URLClassLoader.java:476) ~[?:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:589) ~[?:?] at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[gti-proxy-cache.jar:?] at java.lang.ClassLoader.loadClass(ClassLoader.java:522) ~[?:?] at java.lang.Class.forName0(Native Method) ~[?:?] at java.lang.Class.forName(Class.java:398) ~[?:?] at org.springframework.util.ClassUtils.forName(ClassUtils.java:284) ~[spring-core-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:469) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1607) ~[spring-beans-5.3.20.jar!/:5.3.20] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$resolveBeanClass$5(AbstractBeanFactory.java:1531) ~[spring-beans-5.3.20.jar!/:5.3.20] at java.security.AccessController.doPrivileged(Native Method) ~[?:?] at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1530) ~[spring-beans-5.3.20.jar!/:5.3.20] ... 24 more
内容的提问来源于stack exchange,提问作者Nishthaa Garg
相关产品推荐
相关产品推荐

