Настройка 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.

Другие вопросы по тегам