tomcat 生成空的 ROOT 文件夹但不解压 war 文件

tomcat generate empty ROOT folder but does not unpack the war file

我已经完成了一些与我的问题相关的 post,但不幸的是我没有设法得到正确的答案。 我已经在我的服务器中上传了一个 war 文件并将其重命名为 ea-tomcat85/webapps/ROOT.war。但是每当我重新启动 tomcat 服务器时,它只会生成一个空的 ROOT 文件夹,里面没有任何文件。我尝试按照其他链接中的建议在 tomcat conf 目录文件 server.xml 中设置 <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 但没有成功。我也尝试删除并重命名生成的空 ROOT 文件夹 as suggested 但没有成功。我不确切知道我做错了什么或遗漏了什么。这是我第一次将 war 文件部署到实时服务器中。提前致谢。

更新

我设置了$CATALINA_BASE/bin/setenv.sh:

JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64/jre
CATALINA_PID="$CATALINA_BASE/tomcat.pid"

就像这个official link说明的那样。

但是当我在 $CATALINA_HOME/bin/ 中以 root 身份启动服务器时,我得到以下输出 JRE_HOME: 缺少环境变量。

[root@xxxx bin]# ./startup.sh
Using CATALINA_BASE:   /opt/cpanel/ea-tomcat85
Using CATALINA_HOME:   /opt/cpanel/ea-tomcat85
Using CATALINA_TMPDIR: /opt/cpanel/ea-tomcat85/temp
Using JRE_HOME:        /
Using CLASSPATH:       /opt/cpanel/ea-tomcat85/bin/bootstrap.jar:/opt/cpanel/ea-tomcat85/bin/tomcat-juli.jar
Tomcat started.

startup.sh 使用的唯一不能在 setenv.sh 中设置的环境变量是 CATALINA_BASE(如果未设置则默认为 CATALINA_HOME,默认为startup.sh 脚本的父文件夹)。

因此您需要开始 Tomcat 作为:

CATALINA_BASE="/path/to/catalina/base" /opt/cpanel/ea-tomcat85/bin/startup.sh

$CATALINA_BASE/webapps 中的 ROOT 文件夹是空的,因为 Tomcat 为 CATALINA_BASE 使用了不同的值。