Остановка / запуск tomcat позволяет избежать утечек памяти, которые могут замедлить работу приложения после нескольких повторных развертываний.

довал за следующими шагами

Отключение TomcatРазвернут файл войны с отметкой времени 1 декабряStart Tomcat - при этом создается развернутый каталог для развернутого файла войны.Стоп TomcatОбновлен файл войны с новым с отметкой времени от 3 декабряПерезапустите Tomcat

Я обнаружил, что при перезапуске Tomcat существующие файлы в ранее развернутой папке не обновлялись. Разве обновление файла war не должно обновлять соответствующий файл класса jsp?

Я посмотрел на документацию и нашел этоhttp://tomcat.apache.org/tomcat-5.5-doc/config/host.html, Следующая цитата в разделе «Автоматическое развертывание приложения»

В дополнение к автоматическому развертыванию, которое происходит во время запуска, вы также можете запросить, чтобы новые файлы конфигурации XML, файлы WAR или подкаталоги были вставлены в appBase (или
Каталог $ CATALINA_HOME / conf / [engine_name] / [host_name] в случае файла конфигурации XML) во время работы Tomcat будет автоматически развернут в соответствии с правилами, описанными выше. Автоматический развертыватель также будет отслеживать веб-приложения на наличие следующих изменений:

Обновление файла WEB-INF / web.xml приведет к перезагрузке веб-приложения.Обновление развернутой WAR приведет к отмене развертывания (с удалением расширенного веб-приложения), за которым следует развертывание.Обновление XML-файла конфигурации приведет к отмене развертывания (без удаления какого-либо расширенного каталога) с последующим развертыванием соответствующего веб-приложения.

Разве файлы не были автоматически обновлены в результате пункта 2 выше?

Autodeploy имеет значение true в server.xml

Ответы на вопрос(6)

Ubuntu Box, у меня есть скрипт с именем

install_wars.sh

Со следующим содержанием:mvn clean install service tomcat7 stop find /var/lib/tomcat7/webapps/ -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \; find . -name *.war -exec cp {} /var/lib/tomcat7/webapps/ \; service tomcat7 start Вы можете изменить путь и команды maven соответственно.

Остановка / запуск tomcat позволяет избежать утечек памяти, которые могут замедлить работу приложения после нескольких повторных развертываний.

разобранный каталог должен быть обновлен, однако вам не нужно останавливать Tomcat, чтобы он работал - он будет работать с запущенным Tomcat. Можете ли вы попробовать еще раз, не останавливая Tomcat между обновлениями?

Также я использую встроенное приложение Manager, которое позволяет мне обновлять war-файлы в любом месте домена, не являясь пользователем root (или apache, или любой другой запущенный tomcat). Это очень удобно и может быть встроено в скрипт Ant.

 ziggy05 янв. 2011 г., 14:28
У нас нет приложений менеджера или администратора, установленных в производственных средах, поэтому все это делается с помощью скрипта. Я согласен, что взорванная папка должна быть обновлена. Интересно, может ли это быть вызвано тем, что я отключил tomcat?
Решение Вопроса

что tomcat никогда не обновлял разобранный каталог, когда вы просто добавляете новый jar, по крайней мере для меня. Я всегда предполагал, что это ошибка, но никогда не рассматривал это, поскольку есть простое решение. Оба из них должны работать нормально:

Разверните файл war с помощью встроенного приложения Manager. Хорошо, если вы в порядке с использованием графического интерфейса для управления производством.Запись Этот инструмент имел проблемы при развертывании несколько раз (опять же, я никогда не углублялся в детали), но перезапуск Tomcat работал нормально.Остановить, удалить и удалить. Остановите Tomcat, удалите разобранный каталог, вставьте новый файл войны.

 leonbloy05 янв. 2011 г., 14:42
+1 То же самое здесь. Я принял второе решение, просто сделайте сценарий, чтобы сделать это.
 David García González25 окт. 2012 г., 12:17
Tomcat объясняет это следующим параграфом: «Любой архивный файл веб-приложения в базовом каталоге приложения (appBase), у которого нет соответствующего каталога с тем же именем (без расширения« .war »), будет автоматически расширен, если только свойство unpackWARs имеет значение false. При повторном развертывании обновленного файла WAR обязательно удалите расширенный каталог при перезапуске Tomcat, чтобы обновленный файл WAR был повторно расширен (обратите внимание, что авторазвертель, если он включен, автоматически развернет обновленный файл WAR после удаления ранее развернутого каталога). "
 chefarov05 мая 2016 г., 12:55
Дело в том, что когда вы работаете, перезапустить сервер приложений нелегко, особенно если под этим экземпляром сервера работают другие приложения.
 ziggy05 янв. 2011 г., 14:57
Я использую второй подход, но не удаляя разобранный каталог. Это то, что не работает: 0

позволяет мне бросить новую войну и перезапустить Tomcat, не имея дело с соответствующим каталогом.

Добавить autoDeploy = true. Работает для меня

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">
 AlikElzin-kilaka31 дек. 2014 г., 10:02
Похоже на элемент XML. К какому файлу это следует добавить?
 Mircea Stanciu06 янв. 2015 г., 23:23
Отредактируйте файл server.xml в директории tomcat conf и там он будет

В моем случае я называю артефакт

ROOT.WAR

но должно быть

ROOT.war

Ура!

Ваш ответ на вопрос