2010-06-02 5 views
1

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

ответ

1

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

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

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

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

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

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

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

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

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

+0

Спасибо за ответ. Мы определили соединение с базой данных как ресурс, поэтому мы постараемся сделать это по-своему и напишем скрипт, который скопирует фрагменты контекста после каждого развертывания, и я надеюсь, что это поможет – Peter

Смежные вопросы