Tomcat: autoDeploy=”true” – деплой приложения без перезапуска сервера

Автор: | 05/06/2014

apache-tomcat-7-logoУ Tomcat имеется удобная возможность для обновления приложения без остановки самого сервера.

Включается она опцией autoDeploy="true" в описании элемента <Host> файла server.xml .

Рассмотрим его работу на примере.

Имеется приложение:

$ curl http://localhost:8084
First file

Теперь – редактируем файл server.xml:

        <Host
          name="localhost"
          appBase="/home/user/APP/app-application/"
          unpackWARs="true"
          autoDeploy="true"
          deployOnStartup="false">

Перезапускаем Tomcat, и ещё раз проверяем:

$ cat ../app-application/APP/index.jsp
First file
$ curl http://localhost:8084
First file

Создаём новый war-файл:

$ cat index.jsp
Second file
$ jar cf ROOT.war index.jsp

Копируем его в директорию appBase:

$ cp -n ROOT.war ../app-application/

Смотрим лог-файл:

$ tail -n 3 app-server/logs/catalina.2014-06-03.log
INFO: Undeploying context []
Jun 3, 2014 2:06:33 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive /home/user/APP/app-application/ROOT.war

Проверяем:

$ curl http://localhost:8084
Second file

То же самое будет при использовании не распакованных war-файлов:

        <Host
          name="localhost"
          appBase="/home/user/APP/app-application/"
          unpackWARs="false"
          autoDeploy="true"
          deployOnStartup="false">