В Tomcat 5 я бы создал файл WAR и поместил его на свой тестовый сервер. На этом сервере был файл my-app.xml в каталоге CATALINA_HOME/conf/[EngineName]/[HostName], который указывал на мою тестовую базу данных. Как только я закончил тестирование, я отправлю файл WAR в ИТ-отдел моих клиентов, и они поместили файл в каталог CATALINA_HOME/webapps. На их экземпляре Tomcat у них был другой файл my-app.xml, который указывал на производственную базу данных.Проблема обновления существующего webapp в Tomcat 6.0.20
Недавно мы обновили до Tomcat 6, когда любой из нас скопировал WAR-файл в каталог webapps, он удалит файл my-app.xml. После того, как он будет удален, если я скопирую резервную копию файла my-app.xml в каталог CATALINA_HOME/conf/[EngineName]/[HostName], Tomcat игнорирует его, даже если я перезагружу webapp из Tomcat Manager.
Я попытался добавить файл context.xml в каталог META-INF в файле WAR. Когда Tomcat расширяет WAR-файл, он перезаписывает файл my-app.xml с файлом context.xml. Если я затем скопировал резервную копию файла my-app.xml обратно в каталог CATALINA_HOME/conf/[EngineName]/[HostName], Tomcat удалит WAR-файл и расширенный каталог.
Я могу включить соответствующий файл my-app.xml в файл WAR, но это означает создание двух файлов WAR, один с тестом my-app.xml и один с продуктом my-app.xml. Я также могу заставить его работать, если я скопирую файлы WAR или файлы резервных копий my-app.xml в определенном порядке в правильные каталоги. Я не люблю ни одно из этих решений по нескольким причинам.
Что я делаю неправильно? Почему это не работает в новой версии? Нужно ли менять параметр? Нужно ли мне менять свой процесс? (ПРИМЕЧАНИЕ. ИТ-отдел клиента не хочет останавливаться и запускать Tomcat для повторного развертывания нового файла WAR.)
Спасибо!