Как очистить кэш Tomcat при развертывании нового файла .war?Есть ли настройка конфига? - PullRequest
34 голосов
/ 02 ноября 2011

У меня есть простое приложение hello, world сервлет, с которым я просто играю, и отправляю его на свой сервер Tomcat на VPS.

Когда я изменяю свой код и внедряю его, tomcat не обслуживает недавно опубликованный код (даже после повторного запуска службы).

Я останавливаю службу, затем помещаю новый файл войны в / webapps /, и я обязательно удаляю старый взорванныйПапка также.

Когда я перезапускаю сервер, он все еще обслуживает более старую кодовую базу.

Есть ли в конфигурации настройка, чтобы остановить это поведение?

Также,какие папки я должен удалить?Пожалуйста, будьте конкретны (папки и пути), так как я пытался удалить некоторые из них и никуда не попал.

Ответы [ 10 ]

16 голосов
/ 02 ноября 2011

Вы можете удалить «рабочий» каталог.

Вы уверены, что это не проблема кэширования браузера?

4 голосов
/ 23 декабря 2013

Я бы добавил, что в случае действительно странного поведения - когда вы тратите пару часов, говоря WTF, - попробуйте вручную удалить каталог /webapps/yourwebapp/WEB-INF/classes.Исходный файл Java, который был перемещен в другой пакет, не будет удалять скомпилированный файл класса - по крайней мере, в случае разорванного веб-приложения на TC.Это может серьезно свести вас с ума непредсказуемым поведением, особенно с аннотированным сервлетом.

2 голосов
/ 14 июня 2016

Я столкнулся с некоторым странным поведением, которое не отражало фактическую базу кода, поэтому после некоторого времени, пытаясь найти несколько решений, моя проблема была решена путем удаления всего вручную в /var/cache/tomcat8/

2 голосов
/ 26 марта 2015

Немного опоздал на вечеринку, вот как я это делаю

  1. Удаление приложения из менеджера
  2. Завершение работы Tomcat с помощью ./shutdown.sh
  3. Удаление кэша браузера
  4. Удалите приложение из веб-приложений и из /work/Catalina/...
  5. Запустите Tomcat, используя ./startup.sh
  6. Скопируйте новую версию приложения в /webapps и запустите ее.
1 голос
/ 02 марта 2017

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

В моем случае MySite.WAR был расширен как для ROOT , так и MySite.MySite обычно обслуживали.Но иногда tomcat решал, что ему больше нравится ROOT, и все мои изменения исчезли.

«Решение» - удалять сайт ROOT при каждом развертывании войны.

1 голос
/ 24 марта 2013

Tomcat также создает каталог ROOT на том же уровне, что и work/. ROOT/ также кэширует старые вещи. удалить ROOT вместе с каталогом Catalina в work.

1 голос
/ 23 февраля 2012

Кажется, проблема с отметкой времени. Согласно документации tomcat, если есть новый jsp или сервлет, это создаст новый файл _java в рабочей папке, если файлы _java.class не новее, чем jsp или сервлеты.

0 голосов
/ 27 ноября 2016

У меня была одна и та же проблема дважды, но во второй раз я понял, что это не проблема для Tomcat вообще .. Попробуйте удалить кэш вашего браузера, обновить страницу и посмотреть, если новая версия страницына вашем сервере показывается.Это работало со мной.

0 голосов
/ 14 мая 2016

У меня плохое время, когда я помещаю свой файл войны в /etc/tomcat7/webapps, но реальный путь был /var/lib/tomcat7/webapps. Можете ли вы использовать sudo find / -type f -name "my-war-file.war", чтобы знать, где это.

И удалите эти папки /tmp/hsperfdata_* и /tmp/tomcat7-tomcat7-tmp.

0 голосов
/ 02 ноября 2011

Похоже, ваш загрузчик классов не загружает классы сервлетов после их обновления. Это может быть исправлено, если вы измените свой файл web.xml, который должен побуждать сервер / контейнер к повторному развертыванию и перезагрузке классов сервлета. Я думаю, добавить пустую строку в конце вашего web.xml и сохранить его, а затем посмотреть, исправит ли это. Как я уже сказал, это может исправить это или нет.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...