我试图得到Appfuse + Tomcat + jRebel工作。

默认情况下,Appfuse使用Cargo下载tomcat。7.0.33)并将应用程序部署到它。我希望使用一个已经安装的tomcat (ver。7.0.27),而不是下载的。我在appfuse FAQ中做了更改。

在使用mvn cargo:run部署后,我如何知道实际运行的tomcat确实是7.0.27?

我曾经键入一个错误的URL(例如:localhost:8080/dfsfsdf),在错误页面中看到它,但现在它什么也没有显示。

我的$CATALINA_HOME指向我自己的tomcat 7.0.27。 抱歉忘了说,这是Windows的。

更新:

既然这个问题在某种程度上变得很流行,我想解释一下为什么这个答案被接受。很简单,这是第一个解决我问题的方法。

我正在看问题的标题,@Tech Junkie和@CPU 100确实有最好的答案,但不是我遇到的情况。(我想知道mvn cargo:run是否运行我安装的tomcat或“项目嵌入”tomcat):)


当前回答

为了保护Tomcat不受黑客攻击,建议我们尝试一些隐藏Tomcat版本信息的步骤。OWASP项目提出了几个步骤。https://www.owasp.org/index.php/Securing_tomcat。如果tomcat安装因此受到保护,那么上述答案中只有一个会显示tomcat的版本。例如,查看$TOMCAT_HOME\RELEASE-NOTES文件,其中版本号明确显示。

我有一个这样受保护的服务器,只有RELEASE-NOTES文件显示了tomcat的版本。所有其他技术都无法显示版本信息。

其他回答

尝试解析或执行Tomcat_home/bin目录,并寻找 一个名为version.sh或version.bat的脚本,具体取决于您的 操作系统。 执行脚本。/version.sh或version.bat

如果没有version.bat或version.sh,则 使用一个工具解压JAR文件(\tomcat\server\lib\catalina. JAR),并查看文件org\apache\catalina\util\lib\ServerInfo.properties。 "server.info="下定义的版本。

你可以通过服务器的状态页面找到它的信息:

{running-tomcat-url}/manager/status

在那个页面上,您可以看到运行Tomcat的Java版本

注意:我还粘贴了关于Tomcat6和JRE7兼容性问题的答案。不支持的专业。次要版本51.0

这个命令几乎可以检查所有东西:

java -cp tomcat/lib/catalina.jar org.apache.catalina.util.ServerInfo

or

tomcat/bin/catalina.sh version

输出是这样的

Server version: Apache Tomcat/8.5.24
Server built:   Nov 27 2017 13:05:30 UTC
Server number:  8.5.24.0
OS Name:        Linux
OS Version:     4.4.0-137-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation

我们在Windows环境中运行,我必须找到一种方法来获得Java环境之外的Tomcat版本。在不知道版本的情况下,我无法确定目录。我最终发现最好的方法是查询Tomcat服务使用:

C:\temp>sc query | find /I "tomcat" SERVICE_NAME: Tomcat6 DISPLAY_NAME: Apache Tomcat 6.0 Tomcat6

如果Tomcat作为服务安装,请尝试:

sudo /etc/init.d/tomcat version

用服务的实际名称替换“tomcat”。