我在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中看到应用程序名称。有没有人知道如何在不启用调试和混乱日志的情况下执行此操作?
答案 0 :(得分:2)
Tomcat不支持有序的webapp部署(至少在版本5-6中) de jure 。 事实您可以在conf/server.xml
内以所需顺序放置对不同Web应用的引用,并且它(可能)可以正常工作。然而,这可归类为黑客。这种方法的另一个缺点是你必须在server.xml
中静态定义事物。
另一个替代方法是在每个webapp中创建一个单独的DeploymentInfoLogger
(或任何命名的)类,其中logger使用此类的名称进行静态初始化。仅为此类启用调试级别(因此您不会获得大量不需要的日志数据)。将appender配置为与catalina.out
相同(我想是ConsoleAppender
?)。使此类成为上下文侦听器,并在webapp启动时记录有意义的内容。只有当您事先知道此Web应用程序将为某个特定虚拟主机提供服务时,这当然是可行的。如果没有,您可以使用一些本机Tomcat API从配置中确定这一点。
Sėkmės:)