Проблема обновления существующего веб-приложения в Tomcat 6.0.20 - PullRequest
1 голос
/ 27 января 2010

В Tomcat 5 я собирал файл WAR и помещал его на свой тестовый сервер. На этом сервере в каталоге CATALINA_HOME / conf / [EngineName] / [HostName] был файл my-app.xml, который указывал на мою тестовую базу данных. После завершения тестирования я отправлял файл WAR в ИТ-отдел своих клиентов, и они помещали этот файл в каталог CATALINA_HOME / webapps. В их экземпляре Tomcat у них был другой файл my-app.xml, который указывал на производственную базу данных.

Недавно мы обновились до Tomcat 6, когда любой из нас копирует файл WAR в каталог webapps, он удаляет файл my-app.xml. После удаления, если я скопирую резервную копию файла my-app.xml в каталог CATALINA_HOME / conf / [EngineName] / [HostName], Tomcat игнорирует его, даже если я перезагружаю веб-приложение из 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.)

Спасибо!

1 Ответ

3 голосов
/ 27 января 2010

Похоже, что автоматическое развертывание Tomcat мешает вашему ручному развертыванию. Попробуйте либо развернуть файл WAR в другой каталог (т.е. не в каталог веб-приложений), либо включить autoDeploy в вашем server.xml. Здесь есть еще несколько заметок: http://tomcat.apache.org/tomcat-6.0-doc/config/host.html#Automatic%20Application%20Deployment.

...