У меня есть веб-приложение 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.