【问题标题】:Tomcat display deployed application name instead of war fileTomcat显示部署的应用程序名称而不是war文件
【发布时间】:2011-02-11 13:40:28
【问题描述】:

我在 tomcat 6 中部署了几个应用程序,它们被路由到不同的虚拟主机,因此它们都有单独的上下文根,并命名为 ROOT.war。当 tomcat 启动时,在 catalina.out 我看到了这个:

INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:55 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:56 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive ROOT.war
Feb 11, 2011 1:33:57 PM org.apache.catalina.startup.HostConfig deployWAR

应用程序日志被路由到不同的位置,我无法知道部署了哪些应用程序以及以什么顺序部署。

我想从 war 的 web.xml 而不是 ROOT.war 中查看应用程序名称。有谁知道在不启用调试和混乱日志的情况下做到这一点的方法?

【问题讨论】:

    标签: tomcat logging


    【解决方案1】:

    Tomcat 不支持有序的 webapp 部署(至少在版本 5-6 中)法律上事实上您可以在conf/server.xml 中按所需顺序放置对不同网络应用程序的引用,它(可能)会起作用。然而,这可以归类为黑客。这种方法的另一个缺点是您必须在server.xml 中静态定义事物。

    另一种选择是在每个 webapp 中创建一个单独的 DeploymentInfoLogger(或任何名称)类,并使用此类名称静态初始化记录器。仅为此类启用调试级别(这样您就不会收到大量不需要的日志数据)。将 appender 配置为与 catalina.out 相同(我想是 ConsoleAppender?)。使此类成为上下文侦听器并在 webapp 启动时记录一些有意义的内容。当然,这只有在您事先知道这个 web 应用程序将服务于某个特定的虚拟主机时才有可能。如果没有,您可能可以使用一些本地 Tomcat API 从配置中确定这一点。

    Sėkmės :)

    【讨论】:

    • 我不关心 webapps 的部署顺序,只是想在重启服务器时看到更多信息性的实时数据。值得为此编写一个单独的记录器类的麻烦并不是那么重要。我想没有简单的方法,但感谢您的广泛回答! Ačiū :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 2018-04-19
    • 2010-09-26
    • 1970-01-01
    • 2020-07-18
    • 1970-01-01
    • 2010-09-13
    相关资源
    最近更新 更多