Назад | Перейти на главную страницу

Настройка Tomcat так, чтобы веб-приложение не загружалось автоматически при запуске

У меня есть веб-приложение Java, которое я развертываю с помощью Tomcat, но с этим у меня проблемы.

Проблема в том, что мое веб-приложение должно взаимодействовать с некоторыми собственными библиотеками (через JNI), и эти библиотеки не обрабатывают ошибки изящно, поэтому, если я пытаюсь запустить Tomcat, а собственные вызовы терпят неудачу, запуск Tomcat останавливается на полпути и не запускается.

Я бы хотел, чтобы Tomcat не запускал это веб-приложение при его запуске, поскольку я буду использовать другие средства для запуска веб-приложения, которые обеспечат работу собственных вызовов. В частности, собственные вызовы должны взаимодействовать с другой системой, которая уже должна быть запущена для успешного выполнения собственных вызовов.

Одна интересная вещь, которую я обнаружил, заключается в том, что если я перезагружаю приложение после того, как Tomcat успешно запускает сбои в собственных библиотеках, только контекст не работает, и Tomcat продолжает работать нормально.

Я искал в Google и видел указатели на файл context.xml, но мне неясно, могу ли я использовать это для достижения своей цели, поскольку ссылка Tomcat, похоже, не перечисляет какие-либо свойства, которые останавливают автоматическую загрузку контекста при запуске .

Поведение Tomcat 6 для развертывания приложений при запуске контролируется deployOnStartup параметр в Host элемент в server.xml файл;

 <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true" deployOnStartup="false"
        xmlValidation="false" xmlNamespaceAware="false"
        deployIgnore=".svn">
 </Host>

Однако, если для autoDeploy установлено значение «true», tomcat также поддерживает горячее развертывание файлов войны и контекста, которые находятся в appBase или conf/localhost/Catalina папка, поэтому неясно, увидит ли tomcat эти существующие файлы войны и развернет их также. Следовательно, может потребоваться установить autoDeploy="false" также. В этом сценарии вам нужно будет использовать инструмент диспетчера Tomcat для развертывания ваших веб-приложений на работающем сервере Tomcat.