如题:实在是太坑。平时本地测试觉得很方便,但是到了项目打包发布掉链子了。
如很多帖子一样:
首先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的缺陷。
原文地址:https://www.cnblogs.com/zeussbook/p/10792567.html
时间: 2024-09-30 09:30:21