Как очистить кэш tomcat
Репутация: 1
Всего: 2
Насколько я могу понять - это кеширование, если я прав, то не подскажите ли, где можно такое агрессивное кеширование отключить?
Репутация: 5
Всего: 191
Репутация: 1
Всего: 2
Samotnik,
М-м-м. Понимаете, перезапуском-то сервера это проблема решалась - кеш сбрасывался, но что же мне теперь, при каждом изменении класса скрипта сервер перезапускать?
ЗЫ: зделал всё как вы сказали - таже петрушка: спасает тока перезагрузка сервера.
Репутация: нет
Всего: нет
И редеплоить надо каждый раз, это же все таки web-приложение.
Репутация: 32
Всего: 81
По моему, это так работают загрузчики классов. Раз уж вы сами, вручную, обновляете классы на сервере, то наверно, в тестовых целях, можно обойтись и без "редеплоя".
Достаточно будет reload. Вот почитайте
Если нужна автоматизация процесса, там же, на этой странице, показано как создавать командны для ant.
Репутация: 5
Всего: 5
1) Деплоить WAR-файл;
2) Как уже предлагали, перезапускать только свое приложение, а не сервер целиком. Удобнее всего делать это с помощью Ant. Вот примеры задач для Tomcat:
Репутация: 1
Всего: 4
Попробуй остановить томкат, и стереть содержимое <tomcat_root/work
Репутация: 6
Всего: 12
Он не кеширует а держит твою апп в памяти. Если ты хо4ешь обнавить класс. тогда тебе надо сделать undeploy a потом deploy твоей апликации. или перегрузить сервак. Вот и всё.
Репутация: 6
Всего: 14
А еще можно поставить приложение manager и делать это прямо из браузера
Репутация: 6
Всего: 12
Da,da mozhno eshjo 4erez reload sovsem zabil pro nego.
Репутация: 1
Всего: 2
пардон что долго не отвечал - тока добрался до форума.
Сегодня - завтра попробую.
Добавлено через 2 минуты и 33 секунды
Alexis,
Я тока начал заниматься этим и что такое ant плохо представляю - не подскажите?
Репутация: 24
Всего: 62
Репутация: 1
Всего: 2
Репутация: 32
Всего: 81
У тега <context . > в конфигурации Контекста выставить атрибут reloadable="true"
Репутация: 1
Всего: 2
- Прежде, чем задать вопрос, прочтите это!
- Книги по Java собираются здесь.
- Документация и ресурсы по Java находятся здесь.
- Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
- Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
- Действия модераторов можно обсудить здесь.
- FAQ раздела лежит здесь.
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.
[ Время генерации скрипта: 0.1612 ] [ Использовано запросов: 21 ] [ GZIP включён ]
У меня есть приложение hello, world servlet, с которым я просто играю, и выталкиваю его на мой сервер tomcat на VPS.
Когда я вношу изменения в свой код и развертываю его, tomcat не обслуживает недавно опубликованный код (даже после запуска службы снова).
Я остановлю службу, а затем перетащите новый файл войны в /webapps/, и я также обязательно удалю старую вложенную папку.
Когда я перезапускаю сервер, он по-прежнему служит старой кодовой базе.
Есть ли параметр в конфиге, чтобы остановить это поведение?
Кроме того, какие папки мне нужно удалить? Пожалуйста, будьте конкретными (папки и пути), поскольку я попытался удалить некоторые, а havent "получил в любом месте.
ОТВЕТЫ
Ответ 1
Вы можете удалить каталог "work".
Вы уверены, что это не проблема кеширования браузера?
Ответ 2
Я бы добавил, что в случае действительно странного поведения - где вы тратите пару часов на WTF - попробуйте вручную удалить каталог /webapps/yourwebapp/WEB-INF/classes . Исходный файл java, перенесенный на другой пакет, не удалит файл скомпилированного класса - по крайней мере, в случае вложенного веб-приложения на TC. Это может серьезно свести вас с ума от непредсказуемого поведения, особенно с аннотированным сервлетом.
Ответ 3
Немного поздно для вечеринки, вот как я это делаю
- Отменить развертывание приложения из менеджера
- Завершение работы tomcat с помощью ./shutdown.sh
- Удалить кеш браузера
- Удалите приложение из webapps и /work/Catalina/.
- Запуск tomcat с помощью ./startup.sh
- Скопируйте новую версию приложения в /webapps и запустите его.
Ответ 4
Кажется, это временная метка. Согласно документации tomcat, если есть новый jsp или сервлет, это создаст новый _java файл в рабочей папке, если файлы _java.class не являются более новыми, чем jsp или сервлеты.
Ответ 5
Tomcat также создает каталог ROOT на том же уровне, что и work/ . ROOT/ также кэширует старые вещи. удалите ROOT вместе с Catalina в каталоге work .
Ответ 6
Я столкнулся с каким-то странным поведением, которое не отражает фактическую базу кода, поэтому через некоторое время, пробовав несколько решений, моя проблема была решена путем ручного удаления всего в /var/cache/tomcat8/
Ответ 7
Ответ 8
У меня плохое время ставить мой файл войны на /etc/tomcat7/webapps , но реальный путь был /var/lib/tomcat7/webapps . Можете ли вы использовать sudo find / -type f -name "my-war-file.war" , чтобы узнать, где он.
И удалите эти папки /tmp/hsperfdata_* и /tmp/tomcat7-tomcat7-tmp .
Ответ 9
У меня была одна и та же проблема дважды, но во второй раз я понял, что это не проблема для Tomcat вообще. Попробуйте удалить кеш браузера, обновите страницу и посмотрите, есть ли новая версия страницы на вашем сервере отображается. Он работал со мной.
Ответ 10
Я новичок в tomcat, и эта проблема сегодня меня заводила. Это было спорадично. Я попросил коллегу помочь, и война расширилась, и это было так, как предполагалось. 3 развертывается позже в тот же день, он вернется к исходной версии.
В моем случае MySite.WAR расширился до ROOT И MySite. MySite обычно подавали. Но иногда tomcat решил, что ему понравился ROOT, и все мои изменения исчезли.
"Решение" заключается в удалении сайта ROOT при каждом развертывании войны.
У меня есть простое приложение hello, world servlet, с которым я просто играю, и выталкиваю его на свой сервер tomcat на VPS.
когда я изменяю свой код и развертываю его, tomcat не обслуживает недавно опубликованный код (даже после повторного запуска службы).
Я останавливаю службу, затем нажимаю новый файл war в /webapps/, и я также удаляю старую взорванную папку.
когда я снова запускаю сервер, он все еще служит старые кода.
есть ли параметр в конфигурации, чтобы остановить это поведение?
кроме того, какие папки мне нужно удалить? Пожалуйста, будьте конкретными (папки и пути), поскольку я попытался удалить некоторые и не получил нигде.
вы можете удалить каталог "работа".
вы уверены, что это не проблема кэширования браузера?
Я бы добавил, что в случае действительно странного поведения-где вы проводите пару часов, говоря WTF-попробуйте вручную удалить . Исходный файл java, который был перемещен в другой пакет, не удалит его скомпилированный файл класса - по крайней мере, в случае взорванного веб-приложения на TC. Это может серьезно свести вас с ума непредсказуемым поведением, особенно с аннотированным сервлетом.
я столкнулся с некоторым странным поведением, которое не отражало фактическую базу кода, поэтому через некоторое время, попробовав несколько решений, моя проблема была решена путем ручного удаления всего в /var/cache/tomcat8/
немного поздно для вечеринки, вот как я это делаю
- отменить развертывание приложения из manager
- выключение tomcat с помощью ./shutdown.sh
- удалить кэш браузера
- удалить приложение из webapps и из /work/Catalina/.
- запуск tomcat с помощью ./startup.sh
- скопируйте новую версию приложения в /webapps и запустить его.
кажется, вопрос времени. Согласно документации tomcat, если есть новый JSP или сервлет, это создаст новый файл _java в рабочей папке, если _java.Class файлы новее, чем JSP или сервлеты.
Tomcat также создает на уровне work/ . ROOT/ также кэширует старые вещи. удалить ROOT вместе с
Я новичок в tomcat, и эта проблема сводила меня с ума Сегодня. Это было спорадически. Я попросил коллегу помочь, и война расширилась, и это было так, как и должно было быть. 3 развертывается позже в тот же день, он вернулся к исходной версии.
в моем случае, MySite.Война расширилась до обоих корней и MySite. Мой_сайт обычно подавались. Но иногда tomcat решил, что ему больше нравится корневой, и все мои изменения исчезли.
"решение" является чтобы удалить корневой сайт с каждым развертыванием войны.
у меня плохое время для размещения моего военного файла в /etc/tomcat7/webapps но настоящий путь был /var/lib/tomcat7/webapps . Может вы хотите использовать sudo find / -type f -name "my-war-file.war" чтобы знать, где это.
и удалите эти папки /tmp/hsperfdata_* и /tmp/tomcat7-tomcat7-tmp .
У меня была одна и та же проблема дважды, но во второй раз я понял, что это не проблема на Tomcat вообще.. Попробуйте удалить кэш браузера, обновить страницу и посмотреть, отображается ли новая версия страницы на вашем сервере. Со мной это сработало.
Как я могу предотвратить кеширование tomcat? У меня есть CSS и основные HTML-файлы, которые я загружаю и использую через ajax, и, если я не перезапущу tomcat, изменения, похоже, не отразятся. Разные машины, разные браузеры, и я не получаю обновленные файлы.
Возможно, вам придется удалить папку кэша приложения в / work / Catalina / localhost после изменения флага cachingAllowed.
Конфигурация может быть введена в server.xml как
+1 Я совершенно забыл упомянуть об этом в своем первоначальном ответе. Благодарность! Получил предупреждение от Tomcat 8 при запуске: Установка свойства cachingAllowed в false не нашли свойство соответствия. Этот ответ сейчас очень устарел, для всех, кто его читает, и больше не является действительно правильным (для Tomcat 5+)Для Tomcat 8 / Tomcat 9 свойства должны быть добавлены в conf / context.xml следующим образом
Возможно, вам придется удалить папку кэша приложения в / work / Catalina / localhost после изменения cachingAllowed флага. Также очистите кэш IntelliJ IDEA (если вы используете его для запуска Tomcat):
Посмотрите Apache Tomcat 9 Справочник по конфигурации для других параметров.
antiResourceLocking на <Resources> -Tag определенно не подходит для tomcat 8 Это не правильно для Tomcat 7, либо. Msgstr "Установка свойства 'antiResourceLocking' в 'false' не нашла подходящего свойства." . "При установке свойства 'cachingAllowed' в 'false' не найдено подходящего свойства." @Amalgovinus вы решили свою проблему? У меня такая же проблема в tomcat7, что ты делал?У меня была эта проблема в Tomcat 7, и причина была в том, что для antiResourceLocking было установлено значение true (звучало как хорошая идея . ).
Обратите внимание, что установка этого значения в true имеет некоторые побочные эффекты, включая отключение перезагрузки JSP на работающем сервере: см. Bugzilla 37668.
В моем случае это даже вызвало кеширование простых статических текстовых файлов.
Итак, в итоге, по крайней мере, для быстрого развития мне пришлось использовать:
Где я могу добавить это точно? Если я помещу в conf / context.xml, это даст мне «не найдено подходящее свойство» для каждого из них .cacheMaxSize - Максимальный размер статического кеша ресурса в килобайтах. Если не указан, по умолчанию используется значение 10240 (10 мегабайт).
cacheTTL - Количество времени в миллисекундах между повторными проверками записей в кэше. Если не указан, значение по умолчанию составляет 5000 (5 секунд).
cachingAllowed - Если значение этого флага равно true, будет использоваться кэш для статических ресурсов. Если не указан, значение флага по умолчанию - true.
Читайте также: