springboot项目,打包成war,放到tomcat的webapp下,访问404。要查看问题根本,首先看看tomcat启动的时候,项目启动了么?本人是springboot的启动页面就没有加载。所以是项目本身就没启动成功。
解决办法:
1.修改pom.xml
<packaging>war</packaging>
2.移除嵌入式的tomcat依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
3.修改启动类,启动类继承SpringBootServletInitializer
extends SpringBootServletInitializer
4.打包
mvn clean package -Dmaven.test.skip=true
scope补充知识:
compile:编译、测试、运行、打包,是默认值
test:参与测试相关工作,包括测试代码的编译和执行,不会被打包比如说junit
runtime:与compile相比,不参与项目的编译,类似jdbc,适用于运行和测试阶段
provided:参与编译、测试、运行,但在打包时会做exclude操作
system:与provided类似,但依赖项会从本地拿,而不是maven中央仓库