Развертывание .war условия перезагрузки - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть скрипт установки nsis, который копирует файл .war в каталог Tomcat webapps. Если Tomcat уже запущен, он заметит, что новый .war был сброшен в каталог webapps и начал распаковывать его. Однако распаковка происходит в фоновом режиме, и установщик считает, что это сделано, и предлагает пользователю перезагрузиться. Если пользователь выберет перезагрузку сейчас, есть очень большая вероятность, что Tomcat прервется на полпути во время распаковки .war и оставит веб-приложение в поврежденном состоянии.

Единственное решение, которое я могу придумать, - остановить службу Tomcat при запуске установщика (net stop tomcat6), чтобы предотвратить распаковку Tomcat .war. Затем при перезагрузке сервис Tomcat запустится и распакует его. Это кажется грязным, потому что, если пользователь решает не перезагружаться немедленно, он оставляет службу Tomcat остановленной (что может быть нежелательно, если есть другие запущенные веб-приложения).

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

1 Ответ

0 голосов
/ 23 ноября 2011

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

Если вам не нравится общение через приложение Ant / manager, есть большая вероятность того, что подобный JMX-хук (я знаю, что есть аналогичный для JBoss по крайней мере). Даже если его нет в наличии, достаточно легко написать свой собственный.

...