部署Spring Boot 的war包到Tomcat服务器

Posted by 梁小生 on 2019-01-23
  1. 在项目建立好以后,首先确定本地能正常跑起来

  2. 确定项目中有一个能访问的 REST API, 如果没有的话,会报404

  3. 修改 pom.xml文件

    1
    <packaging>war</packaging>
  4. 移除嵌入式tomcat插件避免与发布后的环境冲突

    1
    2
    3
    4
    5
    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
    </dependency>
  5. 继承SpringBootServletInitializer ,覆盖configure(),把启动类Application注册进去。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @SpringBootApplication
    public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }

    // 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(Application.class);
    }
    }
  6. war包上传到linux服务器中webapps中,启动tomcat将自动解压

  7. 访问时的地址为:ip + 端口 + war包名称 + controller的请求路由地址

  8. 正常启动应该就能访问,如果不能访问,查看linux端口对外开放了没有