Springboot项目打war包在Linux系统Tomcat上发布

SpringBoot项目打war包在Linux系统tomcat发布

我的环境:IDEA、阿里云Centos7.7、SpringBoot2.5.5 、MySQL5.7.30、Tomcat9.0.46、jdk1.8

1 修改SpringBoot项目

因为Springboot内置有tomcat,要使用外部的tomcat需要做一些修改

修改pom.xml文件里的打包方式,Springboot默认打jar包,改为war

image-20211213143127989

添加依赖,使得打包时忽略内置的tomcat

<!--为了打war包-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope> <!-- 只在调试时使用,打包后不使用-->
</dependency>

设置war包的名字,也可以不设置,用默认的名字

<build>
    <finalName>你想设置的war包名</finalName>
    <plugins>

创建一个类继承SpringBootServletInitializer类,我将它放在和springboot启动类同一目录下

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

//打war包需要创建的类
public class SpringBootStartApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(PetsiteApplication.class);
    }
}

修改数据库的配置信息,连接到服务器上的数据库

spring:
  datasource:
    username: root
    password: 123456
    url: jdbc:mysql://服务器公网ip:3306/项目名?serverTimezone=UTC&useSSL=false&useUnicode=true&characterEncoding=UTF8
    driver-class-name: com.mysql.jdbc.Driver

检查Mysql版本、Mysql依赖和驱动名(8.0:com.mysql.cj,jdbc.Driver)是否一致

打包之前先运行一下SpringBoot项目,看看是否能正常运行

2 使用maven打war包

双击clean清除原来的包

点上方圆形闪电按扭,忽略测试文件

双击package打包

war包的默认生成路径是在target目录下

image-20211213144836913

3 Linux系统Tomcat上发布

需要的环境:jdk1.8, tomcat, mysql

如果阿里云的服务器,要先在安全组开启端口,怕麻烦可以1/65535全开

image-20211213151349479

配置防火墙

不想弄可以直接使用下面这两个命令关闭

停止:

 systemctl disable firewalld

禁用:

systemctl stop firewalld

查看状态

systemctl status firewalld

启动

systemctl start firewalld

开机自启

systemctl enable firewalld.service

开放端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent

–permanent永久生效,没有此参数重启后失效

重新载入(使新添加的端口生效)

firewall-cmd --reload

查看已开启的端口

firewall-cmd --zone=public --list-ports

image-20211213163712979

到这里我们的防火墙就配置好了

查看更多关于防火墙的命令

更多防火墙命令

配置Tomcat

上传项目.war包

cd 你的tomcat安装路径/webapps/

使用远程文件传输工具将IDEA的target目录下生成.war包上传到webapps目录下,我使用的是xshell和xftp,Tomcat启动时会自动识别解压这个.war包。

配置server.xml文件

cd 你的tomcat安装路径/conf/
vim server.xml

修改端口为80或者8080 (http默认为80端口,使用80端口在网址上不用输入端口号, 也可以是其它端口)

image-20211213171030921

在文件最下方的Host中加入

<Context docBase="你的.war包名" path=""  reloadable="true" name="/你的.war包名" />

docBase: 项目路径, 可以是绝对路径, 也可以是相对于appBase的相对路径

path: 网站路径, 设置为“”就可以直接使用ip+端口访问网站

reloadable: 项目的文件改动时自动更新网站, 但会占用更多资源

name: 为防止path=“”时项目重复部署

image-20211224185029340

name=“服务器ip或者域名” (Host的name)

path=“” 访问路径:ip:端口

path=“/项目名” 访问路径 : ip:端口/项目名/

进入bin目录

cd tomca安装路径/bin/

启动

./startup.sh

停止

./shutdown.sh

查看日志文件,看看启动情况

cd tomca安装路径/logs/
tail -F catalina.out 

ctl+C 退出

访问

根据上面server.xml文件配置的路径

直接输入IP地址访问或者IP:8080、IP:8080/项目名/

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值