无法启动 spring 引导应用程序 NoClassDefFoundError
Unable to start spring boot application NoClassDefFoundError
我已经将 spring-boot-starter-parent 从 1.4.3 更改为 1.5.4
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
这是我的java申请文件
@SpringBootApplication
@ComponentScan("com.test")
@EnableCaching
@EnableAsync
@EnableAspectJAutoProxy
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, WebMvcAutoConfiguration.class })
public class Application {
当我启动服务器时,出现以下错误。根据依赖关系,它应该处理依赖的罐子,比如 spring-boot
感谢任何帮助。
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/ErrorPage
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:73)
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1581)
Spring 版本有问题。
由于 spring 引导版本 1.5.4 和 1.5.2 在一个子项目中混用。为此创建了问题 9543。
从 POM 文件中删除 spring-web 依赖项并将 spring-boot-starter-web 放入 POM。
com.xyz.asr.autoconfigure.asr.tomcat.AsrEmbeddedTomcatCustomizer
的 customize
方法中的一些代码引用了 class org.springframework.boot.context.embedded.ErrorPage
。 class 在 Spring Boot 1.5 中不存在。 ErrorPage
的正确 fully-qualified 名称是 org.springframework.boot.web.servlet.ErrorPage
.
AsrEmbeddedTomcatCustomizer
需要更新才能使用 org.springframework.boot.web.servlet.ErrorPage
。
我已经将 spring-boot-starter-parent 从 1.4.3 更改为 1.5.4
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
这是我的java申请文件
@SpringBootApplication
@ComponentScan("com.test")
@EnableCaching
@EnableAsync
@EnableAspectJAutoProxy
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, WebMvcAutoConfiguration.class })
public class Application {
当我启动服务器时,出现以下错误。根据依赖关系,它应该处理依赖的罐子,比如 spring-boot
感谢任何帮助。
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'tomcatEmbeddedServletContainerFactory' defined in class path resource [org/springframework/boot/autoconfigure/web/EmbeddedServletContainerAutoConfiguration$EmbeddedTomcat.class]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/embedded/ErrorPage
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:73)
at org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor.postProcessBeforeInitialization(EmbeddedServletContainerCustomizerBeanPostProcessor.java:59)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:409)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1581)
Spring 版本有问题。
由于 spring 引导版本 1.5.4 和 1.5.2 在一个子项目中混用。为此创建了问题 9543。
从 POM 文件中删除 spring-web 依赖项并将 spring-boot-starter-web 放入 POM。
com.xyz.asr.autoconfigure.asr.tomcat.AsrEmbeddedTomcatCustomizer
的 customize
方法中的一些代码引用了 class org.springframework.boot.context.embedded.ErrorPage
。 class 在 Spring Boot 1.5 中不存在。 ErrorPage
的正确 fully-qualified 名称是 org.springframework.boot.web.servlet.ErrorPage
.
AsrEmbeddedTomcatCustomizer
需要更新才能使用 org.springframework.boot.web.servlet.ErrorPage
。