我试图得到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):)


当前回答

在Windows上只需要cmd

C:\Program Files (x86)\Extensis\Portfolio服务器\应用程序\tomcat\bin>版本

其他回答

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

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

我在Ubuntu 18.04 Linux服务器上工作时遇到了这个挑战。

以下是我的解决方法:

运行下面的命令来确定你的version.sh文件的位置:

sudo find / -name "version.sh"

对我来说,输出是:

/opt/tomcat/bin/version.sh

然后,使用输出,运行文件(version.sh)作为shell脚本(sh):

sh /opt/tomcat/bin/version.sh

这是所有。

我希望这对你们有帮助

我知道现在说这个可能太迟了,但这个可能很有用: 如果您试图从Java代码中了解Apache Tomcat服务器版本,您可以使用:

从HttpServlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    getServletContext().getServerInfo()
}

从一个ServletContextListener:

public void contextInitialized(ServletContextEvent event)  { 
    event.getServletContext().getServerInfo();      
}

在Unix服务器的终端上运行

w3m http://localhost:8080/

要退出,按q,然后按y

运行以下命令

/usr/local/tomcat/bin/catalina.sh version

它的反应会是这样的:

Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /var/tmp/
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_PID:    /var/catalina.pid
Server version: Apache Tomcat/7.0.30
Server built:   Sep 27 2012 05:13:37
Server number:  7.0.30.0
OS Name:        Linux
OS Version:     2.6.32-504.3.3.el6.x86_64
Architecture:   amd64
JVM Version:    1.7.0_60-b19
JVM Vendor:     Oracle Corporation