Подтвердить что ты не робот

Tomcat не позволяет развернуть военный файл

Я выполнил следующие шаги

  • Shutdown Tomcat
  • Развернутый военный файл с отметкой 1 декабря
  • Запустить Tomcat - Создал взорванный каталог для развернутого файла войны.
  • Остановить Tomcat
  • Обновлен файл войны с новым с отметкой времени 3 декабря
  • Перезапустить Tomcat

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

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

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

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

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

У Autodeploy установлено значение true в server.xml

4b9b3361

Ответ 1

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

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

Ответ 2

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

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

Ответ 3

Я обычно устанавливаю для autodeploy в server.xml значение false. Это позволяет мне отказаться от новой войны и перезагрузить tomcat без необходимости иметь дело с соответствующим каталогом.

Ответ 4

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

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

Ответ 5

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

ROOT.WAR

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

ROOT.WAR

Ура!

Ответ 6

Поскольку я использую maven для генерации своих сборок в tomcat внутри 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 позволяет избежать утечек памяти, которые могут замедлить работу приложения после нескольких повторных развертываний.