如题:实在是太坑。平时本地测试觉得很方便,但是到了项目打包发布掉链子了。
如很多帖子一样:
首先springboot内嵌的tomcat,再依赖servlet-api,修改启动类继承SpringBootServletInitializer,打成war放入tomcat中
一、pom.xml删掉内嵌tomcat
`
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope><!-- 打成war的时候打开注释,本地开发用内嵌tomcat时加上注释 -->
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
二、启动类:Application
@SpringBootApplication @ComponentScan(basePackages = "com.yzker") public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
再打包发布,然而然并卵。
最后的解决方法是在idea重新配了个Tomcat server。本地调试,本地能跑起来。打成war包服务器也能跑起来,这才是真实的模拟环境。这也是springBoot的缺陷。