Java 试图将tomcat切换到undertow,但没有得到“No”;ServletContext集";错误

Java 试图将tomcat切换到undertow,但没有得到“No”;ServletContext集";错误,java,spring,spring-boot,tomcat,undertow,Java,Spring,Spring Boot,Tomcat,Undertow,我使用的是springbootstarterweb包,其中包括Tomcat作为servlet的默认实现 据我所知,我需要排除spring boot starter tomcat,并启用spring boot starter undertow使其工作。(不得不说,使用Tomcat应用程序运行良好) 但是,当我尝试使用这些更改运行它时,我遇到了这种错误: Caused by: org.springframework.beans.BeanInstantiationException: Failed t

我使用的是
springbootstarterweb
包,其中包括Tomcat作为servlet的默认实现

据我所知,我需要排除
spring boot starter tomcat
,并启用
spring boot starter undertow
使其工作。(不得不说,使用Tomcat应用程序运行良好) 但是,当我尝试使用这些更改运行它时,我遇到了这种错误:

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mvcHandlerMappingIntrospector' defined in class path resource [config/SwaggerConfig.class]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [config/SwaggerConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'resourceHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: No ServletContext set

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mvcHandlerMappingIntrospector' defined in class path resource [config/SwaggerConfig.class]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [config/SwaggerConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'resourceHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: No ServletContext set

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'resourceHandlerMapping' defined in class path resource [config/SwaggerConfig.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'resourceHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: No ServletContext set

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.HandlerMapping]: Factory method 'resourceHandlerMapping' threw exception; nested exception is java.lang.IllegalStateException: No ServletContext set

Caused by: java.lang.IllegalStateException: No ServletContext set
SwaggerConfig.java:

@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {

    @Bean
    public Docket productApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(regex("/.*"))
                .build();
    }

    @Override
    protected void addResourceHandlers(final ResourceHandlerRegistry registry) {
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}
我对它进行了调试,发现在
org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.resourceHandlerMapping()
中,如果是Tomcat,我确实初始化了ServletContext,但当我有一个Undertow时,该变量为null。 org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.resourceHandlerMapping()

这不是空的

这里是空的


如果您需要其他信息,请让我知道

您有什么收获吗?忍受着从tomcat到我自己的问题