Управление контекстом Tomcat - PullRequest
8 голосов
/ 11 ноября 2010

Документ 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 не является релевантной. Новый вопрос, может ли быть какая-то ситуация, когда может произойти вышеупомянутое?

Ответы [ 2 ]

2 голосов
/ 12 мая 2011

Я согласен, что документация вводит в заблуждение. Обычно такое поведение приветствуется, поскольку при развертывании новой версии вашего приложения вы также хотите развернуть обновленный файл context.xml. Если вы планируете редактировать файл context.xml вручную на своем производственном сервере, я предлагаю полностью пропустить его и скопировать его содержимое в файл conf / server.xml.

Быстрое исправление / решение вашей проблемы (я бы сам этого не делал) - пометить файл context.xml как предназначенный только для чтения после того, как он был впервые развернут и обновлен. Таким образом, Tomcat не может удалить / обновить его.

1 голос
/ 18 марта 2011

Если вы хотите избежать перезаписи «context.xml», вы можете перейти к URL-адресу Tomcat Manager, а затем удалить предыдущее приложение и установить новый war / ear.Таким образом, вы получаете больше контроля над процессом установки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...