Удаленный контекст при отмене развертывания - PullRequest
1 голос
/ 02 июня 2010

У меня есть два приложения, развернутые на Tomcat. Для каждого приложения я определил свой собственный контекст в $ CATALINA_HOME / conf / Catalina / localhost, где определен источник данных JDBC. Когда я удаляю одно из приложений, используя ant-сценарий, контекст этого приложения удаляется, поэтому при следующем запуске приложение tomcat не может быть развернуто, поскольку для него не определено соединение JDBC. Есть ли решение этой проблемы?

1 Ответ

1 голос
/ 02 июня 2010

Я думаю, что это ошибка Tomcat. Я подал отчет об ошибке, но исправить это сложно.

Tomcat может развернуть приложение тремя способами,

  1. Каталог, например, webapps / myapp.
  2. WAR, как webapps / myapp.war.
  3. Фрагмент контекста, который вы используете.

Если вы используете № 3, но приложение или война находятся в веб-приложениях, Tomcat будет перепутан с № 1 или № 2. При повторном развертывании каталога или войны предполагается удалить фрагмент контекста.

Мои обходные пути,

  1. Если вы используете каталог, поместите его где-нибудь, кроме APPBASE (webapps). Если вы используете WAR, поместите его в другое место и не взрывайте его.
  2. Мы разворачиваем наше приложение, используя скрипт. В сценарии фрагмент копируется каждый раз после того, как приложение было развернуто.

Вот пример фрагмента для развертывания WAR,

<Context docBase="/anywhere/but/webapps/myapp.war"
    swallowOutput="true" unpackWAR="false" />

Обратите внимание, что не каждое приложение работает в распакованном режиме. Вы не можете читать какие-либо ресурсы как файлы из WAR в распакованном режиме.

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