乐趣区

在Linux上使用Jetty部署War包

前提

有一台 Linux 服务器和一个可以部署的 War 包

1. 安装 Java

创建文件夹

sudo mkdir /usr/java
cd /usr/java

进入 https://www.oracle.com/technetwork/java/javase/downloads/index.html 找到需要安装的 JDK 版本下载地址

下载 JDK

sudo wget --no-check-certificate -c --header "Cookie: oraclelicense=accept-securebackup-cookie" https://download.oracle.com/otn-pub/java/jdk/13+33/5b8a42f3905b406298b72d750b6919f6/jdk-13_linux-x64_bin.tar.gz

有些版本不支持这种方式下载,所以只能手动下载后再上传到服务器

解压 JDK

sudo tar -xvzf jdk-13_linux-x64_bin.tar.gz

修改环境变量

sudo nano /etc/environment

在 PATH 变量后追加

:/usr/java/jdk-13/bin

新增变量

JAVA_HOME="/usr/java/jdk-13"

编辑后文件类似于如下:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/java/jdk-13/bin"
JAVA_HOME="/usr/java/jdk-13"

验证 Java 版本

重新登录终端

java -version

2. 安装 Jetty

进入 https://www.eclipse.org/jetty/download.html 复制下载地址

下载 Jetty

sudo wget https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.21.v20190926/jetty-distribution-9.4.21.v20190926.tar.gz

解压 Jetty

sudo tar -xvzf jetty-distribution-9.4.21.v20190926.tar.gz

创建文件夹并移动文件

sudo mkdir /usr/jetty
sudo mv jetty-distribution-9.4.21.v20190926 /usr/jetty/

3. 上传 War 包

如果有权限可以直接使用 rz 命令上传
进入 wabapps 文件夹

cd /usr/jetty/jetty-distribution-9.4.21.v20190926/webapps/
rz

当然也可以使用如下指令将本地文件复制到服务器临时目录

scp ~/file.war martin@hostname:/tmp  

其中 hostname 为服务器外网地址

然后复制到 webapps 目录

sudo mv /tmp/weChatRobot.war /usr/jetty/jetty-distribution-9.4.21.v20190926/webapps/

4. 启动 Jetty

编辑 start.ini

sudo vi /usr/jetty/jetty-distribution-9.4.21.v20190926/start.ini

找到 jetty.http.host 和 jetty.http.port,去掉前面的 #号, 如有需要可修改绑定端口

## Connector host/address to bind to
# jetty.http.host=0.0.0.0

## Connector port to listen on
# jetty.http.port=8080

启动 Jetty

sudo /usr/jetty/jetty-distribution-9.4.21.v20190926/bin/jetty.sh start nohup

停止 Jetty

sudo /usr/jetty/jetty-distribution-9.4.21.v20190926/bin/jetty.sh stop

如果只有一个应用想要把根路径绑定到该应用,则可在 webapps 目录下添加应用同名的 xml,如当前有 test.war,则可新增 text.xml 文件, 内容为

<?xml version="1.0"  encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Set name="contextPath">/</Set>
    <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/test.war</Set>
</Configure>

完成

参考链接
https://www.javahelps.com/2019/04/install-latest-oracle-jdk-on-linux.html
https://www.cnblogs.com/freeweb/p/5942972.html

退出移动版