Tomcat отображает имя развернутого приложения вместо файла war - PullRequest
4 голосов
/ 11 февраля 2011

У меня в 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.xml, а не ROOT.war.Кто-нибудь знает способ сделать это без включения отладки и загромождения журнала?

1 Ответ

2 голосов
/ 12 февраля 2011

Tomcat не поддерживает заказанные развертывания веб-приложений (по крайней мере, в версиях 5-6) de jure . Де-факто вы можете поместить ссылки на различные веб-приложения в нужном порядке внутри conf/server.xml, и это (вероятно) будет работать. Это, однако, может быть классифицировано как взломать. Другим недостатком этого подхода является то, что вы должны статически определять вещи в server.xml.

Другой альтернативой может быть создание отдельного класса DeploymentInfoLogger (или любого другого) внутри каждого веб-приложения, в котором логгер статически инициализируется с именем этого класса. Включите уровень отладки только для этого класса (чтобы вы не загружали ненужные данные журнала). Настройте appender так же, как для catalina.out (ConsoleAppender Полагаю?). Сделайте этот класс слушателем контекста и запишите что-то значимое во время запуска веб-приложения. Это, конечно, возможно, только если вы заранее знаете, что это веб-приложение будет обслуживать определенный виртуальный хост. Если нет, то, вероятно, вы можете использовать какой-то собственный API Tomcat, чтобы определить это по конфигурации.

Sėkmės:)

...