检查 tomcat 版本 (version.sh) 时显示错误的服务器版本

Wrong server version being displayed when checking tomcat version (version.sh)

大家好,希望大家多多指教。这让我发疯。

所以,当我 运行 version.sh 检查哪个 tomcat 是 运行ning 时,我得到下面的块。

正如您在 "server version" 下看到的,我得到的是 7.0.64 而不是 7.0.69。我该如何改变这个? 我有另一台服务器,没问题。只是这个服务器很难。哈哈

谢谢,V

[root@blah01 bin]# ./version.sh 
Using CATALINA_BASE:   /opt/apache-tomcat-7.0.69 
Using CATALINA_HOME:   /opt/apache-tomcat-7.0.69 
Using CATALINA_TMPDIR: /opt/apache-tomcat-7.0.69/temp 
Using JRE_HOME:        /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.181-3.b13.el6_10.x86_64/jre 
Using CLASSPATH:       /opt/apache-tomcat-7.0.69/bin/bootstrap.jar:/opt/apache-tomcat-7.0.69/bin/tomcat-juli.jar 
Server version: Apache Tomcat/7.0.64 
Server built:   Aug 19 2015 17:18:06 UTC 
Server number:  7.0.64.0 
OS Name:Linux 
OS Version:     2.6.32-754.3.5.el6.x86_64 
Architecture:   amd64 
JVM Version:    1.8.0_181-b13 
JVM Vendor:     Oracle Corporation

根据您得到的输出,我怀疑这是一个简单的错误升级案例(或者,在这种情况下,降级)。

脚本version.sh(以及,在Windows,version.bat)从编译的Java类中提取版本号,所以这不是copied-over Tomcat 的 higher-numbered 版本的单个脚本的情况(或者更可能的是,不是 "upgraded" 的单个文件以及 Tomcat).

解决方案是通过删除现有的内容和 re-installing 所需版本的新副本来修复 Tomcat 安装。

我强烈建议阅读 Tomcat 附带的 RUNNING.txt 文件中标题为 高级配置 - 多个 Tomcat 实例 的部分。它描述了如何 "split" 将 Tomcat 部署到两个目录中:一个包含 Tomcat 二进制文件和脚本(在控制它的环境变量之后称为 CATALINA_HOME)另一个包含您的配置、(通常)应用程序和(有时)支持该特定实例的脚本(称为 CATALINA_BASE)。

将您的环境一分为二使得升级降级非常容易。对于单个 point-release 升级,它是这样的:

  1. 将新版本解压到apache-tomcat-x.y.z
  2. 将任何自定义库从 /path/to/apache-tomcat-x.y.z-1/lib 复制到 /path/to/apache.tomcat-x.y.z/lib
  3. 停止现有的 Tomcat 实例,如果它是 运行
  4. CATALINA_BASE/path/to/apache-tomcat-x.y.z-1 更改为 /path/to/apache.tomcat-x.y.z
  5. 启动新的 Tomcat 实例(例如 /path/to/apache.tomcat-x.y.z/bin/catalina.sh start

如果出现问题并且您需要降级,只需将 CATALINA_BASE 更改回原始值并重新启动您的 Tomcat 实例。您将回到开始的地方,并且可以找出新版本无法正常工作的原因。