排除了自动配置,但仍在使用嵌入式servlet容器

时间:2019-06-20 21:03:53

标签: spring spring-boot

我已按照文档中提到的所有步骤启用了用于春季启动应用的传统战争部署,即从EmbeddedServletContainerAutoConfiguration中排除了@EnableAutoConfiguration,而我只有一个这样的实例。还扩展了SpringBootServletInitializer并确保打包的war不具有任何tomcat启动器依赖项。还要运行spring boot报告并确认EmbeddedServletContainerAutoConfiguration在排除列表中。

除了部署战争的所有更改之外,它仍然在使用嵌入式servlet容器创建嵌入式应用程序上下文。

我想念什么?我还可以检查其他哪些领域?春季启动版本1.5.13。

1 个答案:

答案 0 :(得分:2)

>

您好Veeram

我们不需要排除AutoConfiguration-classes,但是需要排除tomcat依赖项。

您需要做的是从tomcat starter省略对pom.xml的依赖。它从spring-boot-starter-web中作为传递依赖项被拉出。因此,您需要为其添加排除项:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

现在,当您使用<packaging>war</packaging>SpringBootServletInitializer时,我们将需要servlet-api对类路径的依赖。

因此,将servlet依赖项添加到您的pom.xml

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>

希望这会有所帮助!