记录一下,springboot内置tomcat可以运行,加到外部tomcat就访问不了的问题,不是原创
https://www.cnblogs.com/qianzf/p/11812931.html
正常情况下,我们开发 SpringBoot 项目,由于内置了Tomcat,所以项目可以直接启动,部署到服务器的时候,直接打成 jar 包,就可以运行了 (使用内置 Tomcat 的话,可以在 application.yml 中进行相关配置)
有时我们会需要打包成 war 包,放入外置的 Tomcat 中进行运行,步骤如下 (此处我用的 SpringBoot 版本为 2.1.1,Tomcat 的版本为 8.0)
一、排除内置 Tomcat
二、将打包方式更改为 war
war
三、修改启动类
使启动类继承 SpringBootServletInitializer 类,并覆盖 configure 方法
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
四、添加依赖
由于 SpringBootServletInitializer 类需要用到 servlet-api 的相关 jar 包,所以需要添加依赖
javax.servlet javax.servlet-api 4.0.1 provided五、配置外置 Tomcat
六、查看结果
最后启动项目,在浏览器中输入 http://localhost:8080/hello 就可以看到结果了
@RestController
public class HelloController {
@GetMapping(value = "/hello")
public String hello() {
return "Hello World!!!";
}
}