无法启动 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.AsrEmbeddedTomcatCustomizercustomize 方法中的一些代码引用了 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