Настройка Tomcat на автоматическую загрузку веб-приложения при запуске
У меня есть веб-приложение на Java, которое я развертываю с помощью Tomcat, но у меня возникли некоторые проблемы с этим.
Проблема заключается в том, что мое веб-приложение должно взаимодействовать с некоторыми собственными библиотеками (через JNI), и эти библиотеки не обрабатывают изящно ошибки, поэтому, если я пытаюсь запустить Tomcat и исходные вызовы завершаются неудачно, запуск Tomcat частично останавливается и не запускается.
Я хотел бы, чтобы Tomcat не запускал это веб-приложение при его запуске, поскольку я буду использовать другие средства для запуска веб-приложения, которые будут гарантировать, что исходные вызовы будут работать. В частности, собственные вызовы должны общаться с другой системой, которая уже должна быть запущена, чтобы исходные вызовы были успешными.
Одна интересная вещь, которую я обнаружил, заключается в том, что, если я перезагружаю приложение после того, как Tomcat успешно запускает сбои в собственных библиотеках, происходит только сбой контекста, и Tomcat продолжает работать нормально.
Я гуглил и видел указатели на файл context.xml, но мне неясно, могу ли я использовать это для достижения своей цели, так как в справочнике Tomcat, похоже, нет списка свойств, которые мешают контексту автоматически загружаться при запуске,
1 ответ
Поведение 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 также поддерживает горячее развертывание файлов war и context, которые находятся в папке appBase или conf/localhost/Catalina, поэтому неясно, будет ли tomcat видеть эти существующие файлы war и развертывать их. Следовательно, может также потребоваться установить autoDeploy="false". В этом случае вам потребуется использовать инструмент менеджера tomcat для развертывания ваших веб-приложений на работающем сервере tomcat.