zoukankan      html  css  js  c++  java
  • springboot项目部署(war包)

    将springboot项目打包成war,并且部署到tomcat。比较麻烦,自己踩的坑也比较多。算了一下,找bug的时间,有两天熬到凌晨2点。

    修改pom.xml使得打包成war

    <groupId>com.yanzhen</groupId>
    <artifactId>dormitory</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <description>Demo project for Spring Boot</description>
    <packaging>war</packaging> <!--更改这里-->
    

    修改pom.xml排除内置的Tomcat(不然报错404)

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <!--添加以下部分-->
      <exclusions>
          <exclusion>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-tomcat</artifactId>
          </exclusion>
      </exclusions>
    </dependency>
    

    添加tomcat启动器

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
    

    在build配置项目的打包名

    <build>
        <finalName>dormitory</finalName>
    </build>
    

    打包之后的项目名就是dormitory

    image-20210127110624791

    修改启动类

    继承自SpringBootServletInitializer并重写SpringApplicationBuilder方法

    @SpringBootApplication
    @MapperScan({"com.dj.mapper"})//配置到mapper
    public class DormitoryApplication extends SpringBootServletInitializer {
    
        public static void main(String[] args) {
            SpringApplication.run(DormitoryApplication.class, args);
        }
    
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
            return builder.sources(DormitoryApplication.class);
        }
    }
    

    maven打包

    先执行maven clean ,再执行maven package,那么就会在target目录下生成了dormitory.war

    image-20210127110908411

    部署到tomcat

    dormitory.war放入tomcat中的webapps

    image-20210127111132915

    启动tomcat

    在windows中运行,linux类似

    cd bin
    startup.bat
    

    启动成功之后,会发现生成了一个dormitory的文件夹,项目也运行起来了。

    image-20210127111403770

    测试

    image-20210127111547799

    测试注意点(一定要看)

    由于不使用Spring Boot 自带的Tomcat,所以在application中配置服务器server是无效的。

    如果需要修改端口port,修改tomcat的端口,即这边设置的端口也不会生效,会使用tomcat的默认端口。]

    tomcat修改默认端口:https://www.cnblogs.com/wzstudy/p/10690656.html

    如果部署到云服务器需要开放两边的端口,宝塔和服务器的

    如果需要context-path,需要在前面设置build的打包名改成context-path的值(打包名就不用/)

    image-20210127111737752

    <build>
        <finalName>dormitory</finalName>
    <build>
    

    如果你没有设置context-path,你想要访问的效果是http://localhost:8080/login,那么你就需要将打包名改成ROOT

    <build>
        <finalName>ROOT</finalName>
    <build>
    

    image-20210127112511557

    这样项目就会直接编译到原本ROOT文件中

    参考链接

    部署springboot项目到云服务器的两种方式(jar+war)

    SpringBoot项目部署(war包,jar包)

    SpringBoot部署 –war方式

    修改tomcat默认端口

  • 相关阅读:
    angularjs学习之六(angularjs中directive指令的一般编程事件绑定 模板使用等)
    Flex 容器基本概念
    flex 4 布局样式
    flex 特效
    delphi ehLib 安装包下载及安装方法
    CnPack IDE 专家包(CnWizards)显示代引用单元列表
    Delphi 获取DataSet传入参数后的SQL命令
    偶写的第一个控件,一个用选择代替输入的Edit控件…
    delphi中响应鼠标进入或离开控件的方法
    Delphi常用关键字用法详解
  • 原文地址:https://www.cnblogs.com/10134dz/p/14334076.html
Copyright © 2011-2022 走看看