SpringBoot项目 Tomcat部署war程序时启动成功但是访问api接口404异常处理

发布时间 2023-09-13 17:14:10作者: zhaoyanhao

一、异常错误

二、原因
三、解决方法
一、异常错误
Springboot项目 使用IntelliJ IDEA 将maven项目打war包,pom.xml文件中引入了依赖 

并通过maven的package打包完后,放入tomcat的web-apps文件下 

同时修改了打开conf文件夹下的server.xml文件,启动tomcat时出现了以下问题 

 二、原因

SpringApplicationBuilder用于构建 Spring 应用,是SpringApplication和ApplicationContext实例的构建器,具有便利的流利的 API 和上下文层次结构支持。如果没有在启动类中添加SpringApplicationBuilder,tomcat将无法构建SpringBoot应用。

三、解决方法
在启动类中需要

继承 org.springframework.boot.context.web.SpringBootServletInitializer类
重写configure(SpringApplicationBuilder application)方法

 @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(GeoipApplication.class);
    }

 

@SpringBootApplication
@RestController
public class GeoipApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(GeoipApplication.class, args);
    }

    @GetMapping("/")
    public ResultInfo index() {
        return new ResultInfo(true, "IP定位服务");
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(GeoipApplication.class);
    }
}