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