Моя задача включает развертывание веб-приложения Java в экземпляре Tomcat 6.0.35, работающем в Debian Squeeze. Таким образом, Tomcat устанавливается из источников пакетов, а веб-приложение развертывается из настраиваемого пакета .deb, который помещает файл .war в каталог ниже. /opt
и регистрирует его в Tomcat, отбрасывая контекстный XML (назовем его my-app.xml
) в /etc/tomcat6/Catalina/localhost/
. Это прекрасно работает для начальной установки .deb, когда приложение выбирается механизмом автоматического развертывания Tomcat и распаковывается в /var/lib/tomcat6/webapps/
.
Однако при повторной установке новой версии .deb Tomcat не будет обновлять приложение. Он обнаружит изменение, только если я вручную выполню
touch /etc/tomcat6/Catalina/localhost/my-app.xml
Даже перезапуск Tomcat, не касаясь my-app.xml
не имеет никакого эффекта.
my-app.xml
выглядит так:
<Context path="/my-app" docBase="/opt/my-app/my-app.war">
<WatchedResource>/opt/my-app/my-app.war</WatchedResource>
</Context>
IMHO, это должно следить за изменениями .war (который меняется, когда я устанавливаю обновленный .deb).
Автоматическое развертывание включено в server.xml
.
Любые идеи?
Положите touch
в сценарий после установки вашего deb
файл