在 CentOS 7 上安装 OpenJDK 8

Jetty 需要 JVM 来执行 Java Web 应用程序。
因此我们使用 yum 命令安装 OpenJDK。

[root@jetty-01 ~]# yum install -y java-1.8.0-openjdk

设置 Java 环境变量。

[root@jetty-01 ~]# echo "export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64" >> /etc/profile
[root@jetty-01 ~]# . /etc/profile
[root@jetty-01 ~]# env | grep JAVA_HOME
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64

通过检查版本确保 Java 安装。

[root@jetty-01 ~]# java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-b04)
OpenJDK 64-Bit Server VM (build 25.212-b04, mixed mode)

CentOS 7 上已经安装了 OpenJDK。

在 CentOS 7 上安装 Jetty 9 Web 服务器

Jetty 是一个 Java HTTP Web 服务器和 Java servlet 容器。

Jetty 是一个由 Eclipse Foundation 开发和维护的免费开源项目。

Jetty 被用于许多开源项目和产品中。
Jetty 可以轻松嵌入到设备、工具、框架、应用服务器和集群中。

在本文中,我们将在 CentOS 7 上安装 Jetty 9 Web 服务器,然后在其上部署 Java Web 应用程序。

在 Jetty 9 Web 服务器上部署 Java Web 应用程序

从 GitHub 下载 Java 项目源。

我们正在下载 simple-crud-app,这是一个简单的 Hello World 应用程序。

[root@jetty-01 tmp]# curl -O https://codeload.github.com/trdngy/toy-project-1/zip/master
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 15923    0 15923    0     0   2994      0 --:--:--  0:00:05 --:--:--  4201

提取下载的文件。

[root@jetty-01 tmp]# unzip master

这个项目由 Apache Maven 提供支持,因此,我们必须安装 Apache Maven 来编译这个项目。

[root@jetty-01 tmp]# yum install -y maven

通过检查其版本来验证 Apache Maven 安装。

[root@jetty-01 tmp]# mvn -v
Apache Maven 3.0.5 (Red Hat 3.0.5-17)
Maven home: /usr/share/maven
Java version: 1.8.0_212, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el7_6.x86_64/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"

编译源代码以生成 WAR 文件。
我们将在我们的 Jetty 9 Web 服务器上部署这个 WAR。

[root@jetty-01 tmp]# cd toy-project-1-master/
[root@jetty-01 toy-project-1-master]# mvn compile
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------------------------------------------------------
[INFO] Building simple-crud-app Maven Webapp 0.0.1
[INFO] -----------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ simple-crud-app --
[debug] execute contextualize
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, for example:build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ simple-crud-app --
[WARNING] File encoding has not been set, using platform encoding UTF-8, for example:build is platform dependent!
[INFO] Compiling 8 source files to /tmp/toy-project-1-master/target/classes
[INFO] -----------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] -----------------------------------------------------------------------
[INFO] Total time: 4.954s
[INFO] Finished at: Wed Jan 15 01:18:17 PKT 2019
[INFO] Final Memory: 13M/32M
[INFO] -----------------------------------------------------------------------

构建 WAR 文件以部署在我们的 Jetty 9 Web 服务器上。

[root@jetty-01 toy-project-1-master]# mvn package

将生成的 WAR 文件复制到 Jetty 9 webapps 目录中。

[root@jetty-01 toy-project-1-master]# mv /tmp/toy-project-1-master/target/simple-crud-app.war /opt/jetty/webapps/

如果我们访问 URL http://jetty-01.onitroad.com:8080/ ,我们可能会注意到我们的应用程序已自动添加到 Jetty 9 Web 服务器中。

浏览器 URL http://jetty-01.onitroad.com:8080/simple-crud-app/ 以通过 Jetty 9 Web 服务器访问我们的 Java Web 应用程序。

我们已经在 CentOS 7 上的 Jetty 9 Web 服务器中成功部署了一个 Java Web 应用程序。

更多: zhilu jiaocheng

在 CentOS 7 上安装 Jetty 9 Web 服务器

创建一个用户来拥有 Jetty 软件。

[root@jetty-01 ~]# useradd jetty

从 Eclipse 网站下载最新版本的 Jetty。

早期版本可以从 Maven Central 下载。

[root@jetty-01 ~]# cd /tmp
[root@jetty-01 tmp]# curl -O https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/9.4.18.v20190429/jetty-distribution-9.4.18.v20190429.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18.4M  100 18.4M    0     0  95411      0  0:03:22  0:03:22 --:--:--  110k

将下载的文件解压到 /opt 目录。

[root@jetty-01 tmp]# tar zxvf jetty-distribution-9.4.18.v20190429.tar.gz -C /opt/

为 /opt/jetty-distribution-9.4.18.v20190429/ 目录创建软链接。

[root@jetty-01 tmp]# ln -s /opt/jetty-distribution-9.4.18.v20190429/ /opt/jetty

将 Jetty 软件所有权设置为 jetty 用户。

[root@jetty-01 tmp]# chown -R jetty:jetty /opt/jetty/

我们需要为 Jetty 服务器设置环境变量。
我们还可以在此处设置特定于 Jetty Web 服务器的 JAVA_OPTIONS。

[root@jetty-01 tmp]# cat > /etc/default/jetty << EOF
> JETTY_HOME=/opt/jetty
> JETTY_BASE=/opt/jetty/webapps
> JETTY_USER=jetty
> JETTY_HOST=0.0.0.0
> JETTY_ARGS=jetty.port=8080
> EOF

在 Jetty 的运行目录上创建和设置权限。

[root@jetty-01 tmp]# mkdir /var/run/jetty
[root@jetty-01 tmp]# chown jetty:jetty /var/run/jetty

在 Linux 防火墙中允许 Jetty 服务端口。

[root@jetty-01 tmp]# firewall-cmd --permanent --add-port=8080/tcp
success
[root@jetty-01 tmp]# firewall-cmd --reload
success

为 Jetty 服务创建一个 systemd 单元。

[root@jetty-01 tmp]# vi /usr/lib/systemd/system/jetty.service

并其中添加以下指令。

[Unit]
Description = Jetty Web Server
After = syslog.target network.target
[Service]
User = jetty
ExecStart = /opt/jetty/bin/jetty.sh start
ExecStop = /opt/jetty/bin/jetty.sh stop
ExecReload = /opt/jetty/bin/jetty.sh restart
Type = forking
[Install]
WantedBy = multi-user.target

启动并启用 Jetty 服务。

[root@jetty-01 tmp]# systemctl enable jetty.service
Created symlink from /etc/systemd/system/multi-user.target.wants/jetty.service to /usr/lib/systemd/system/jetty.service.
[root@jetty-01 tmp]# systemctl start jetty.service

从客户端浏览器浏览 URL http://jetty-01.onitroad.com:8080/。

Jetty 9 Web 服务器已安装在 CentOS 7 上。

日期:2020-09-17 00:16:40 来源:oir作者:oir