SpringBoot打包成War发布到Linux服务器上,使用tomcat启动启动的方式

SpringBoot默认的打包方式是jar,需要发布的时候,可以直接打成jar包,然后放在服务器上,运行java -jar  xxx.jar 即可。

SpringBoot项目如果采用jar包来启动的话,必须要分配相应的端口,如果对于一些公司,项目很多,或者端口的使用有限制。很有可能有些项目因为端口不够用受限制,所以这个时候,就可以打成war包,采用tomcat启动,使用统一的端口。

如果想打成war,放到Tomcat上,使用tomcat来统一启动。那就需要修改一些配置。

第一步:修改pom.xml文件

1)修改项目的打包方式

<packaging>war</packaging>

 2) 去掉SpringBoot内置的tomcat

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

3)引入新的tomcat依赖。其中provided表示,该依赖已经由JDK或者容器提供。打包时,不会打入war中,也就不会。只是我们在编译和测试时使用。

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

 第二步:修改启动类

修改启动类

1)启动类直接继承SpringBootServletInitializer类,重写configure方法。

@SpringBootApplication
public class GeoserverApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(GeoserverApplication.class);
    }

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

}

2)或者新建ServletInitializer类继承SpringBootServletInitializer。

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DelShpApplication.class);
    }

}

 注:我这里用的springboot版本(1.5...)比较低,import的时候,重新导入一下。

第三步:打包

直接maven -clean-package即可。

 然后找到左侧项目栏下的target下面就有自己生成的war包

这个war的名字可以打包之前指定。不然会用默认的项目的artifactId + version

 看到有人说,需要linux上的JDK版本和本地的JDK版本必须一致才生效,这个也需要留意一下。

另外在发布的时候,我发现我这个springboot版本打出来的war包 ,放到tomcat8上可以正常启动,但是放到tomcat7上就会报错。这是因为Springboot2.0以上,就不再支持tomcat7。也就是你的springboot的war包要想在tomcat7上运行,就算设置了以上内容也是不行。必须降低springboot的版本。选了1.+ 就可以了

第四步:部署发布

直接将生成的war包放到服务器的tomcat的webapps文件夹下。然后启动tomcat。启动之后,会在webapps下解压缩出一个和war同名的文件夹。你的项目生成的class文件,配置文件都在这下面。需要修改配置信息的话,也可以在里面直接修改。

项目启动之后,端口由tomcat统一管理,如果没修改tomcat 的端口的话,默认都是8080。打开你项目或者接口的话,还需要在ip:port/后加上你的war名称,然后再后接接口地址。

最后:

如果你这是个新项目,那么新建项目的时候,直接勾选war的选项也可以。最终和上面的设置效果是一样的。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值