我已按照文档中提到的所有步骤启用了用于春季启动应用的传统战争部署,即从EmbeddedServletContainerAutoConfiguration
中排除了@EnableAutoConfiguration
,而我只有一个这样的实例。还扩展了SpringBootServletInitializer
并确保打包的war不具有任何tomcat启动器依赖项。还要运行spring boot报告并确认EmbeddedServletContainerAutoConfiguration
在排除列表中。
除了部署战争的所有更改之外,它仍然在使用嵌入式servlet容器创建嵌入式应用程序上下文。
我想念什么?我还可以检查其他哪些领域?春季启动版本1.5.13。
答案 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>
希望这会有所帮助!