Документ Tomcat 6.0 на http://tomcat.apache.org/tomcat-6.0-doc/config/context.html гласит:
Только если контекстный файл не существует для приложения в $CATALINA_BASE/conf/[enginename]/[hostname]/
, в отдельном файле в /META-INF/context.xml
внутри файлов приложения. Если веб-приложение упаковано как WAR, то /META-INF/context.xml
будет скопировано в $CATALINA_BASE/conf/[enginename]/[hostname]/
и переименовано в соответствии с контекстным путем приложения. Как только этот файл существует, он не будет заменен, если новая WAR с более новым /META-INF/context.xml
будет помещена в базу приложения хоста .
Однако я заметил, что если вы поместите новый файл war в каталог webapp, каталог context.xml
в META-INF
заменит context.xml
в $CATALINA_BASE/conf/[enginename]/[hostname]
.
Существует ли какая-либо конфигурация, которая гарантирует, что context.xml
в $CATALINA_BASE/conf/[enginename]/[hostname]/
не будет перезаписываться при каждом развертывании нового файла войны.
Редактировать: Я использую autodeploy = "true" Из комментария JoseK я понимаю, что когда tomcat видит новый файл войны, он удаляет старое приложение (что приводит к удалению файла контекста) и развертывает новый файл войны (ведущий к созданию нового файла войны). В этом случае приведенная выше информация из документа Tomcat не является релевантной. Новый вопрос, может ли быть какая-то ситуация, когда может произойти вышеупомянутое?