由于springboot有内置的Tomcat 所以在部署项目到外置Tomcat时 会发生冲突
解决方案有两种(一般出现这个问题的时候是项目已经生成 尝试使用方法一 直接在pom注入依赖 发现行不通 暂时没有搞明白为什么 最终选择方法二来解决 )
第一种 在创建项目时选择打包方式为war包 在pom会生成依赖 打war包时忽略内置的Tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
第二种 处理springboot的启动 (可以直接在启动类上修改 也可以重新写个类) 实现SpringBootServletInitializer重写configure 在springboot启动时 忽略内置Tomcat的加载
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* @author chengxn
* @date 2019/3/15
* 解决springboot打成war包,部署tomcat后访问404问题
*/
public class BackendInTomcatApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
处理完后 打包部署访问就没有问题了