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