Ответ 1
Вы можете удалить каталог "work".
Вы уверены, что это не проблема кеширования браузера?
У меня есть приложение hello, world servlet, с которым я просто играю, и выталкиваю его на мой сервер tomcat на VPS.
Когда я вношу изменения в свой код и развертываю его, tomcat не обслуживает недавно опубликованный код (даже после запуска службы снова).
Я остановлю службу, а затем перетащите новый файл войны в /webapps/, и я также обязательно удалю старую вложенную папку.
Когда я перезапускаю сервер, он по-прежнему служит старой кодовой базе.
Есть ли параметр в конфиге, чтобы остановить это поведение?
Кроме того, какие папки мне нужно удалить? Пожалуйста, будьте конкретными (папки и пути), поскольку я попытался удалить некоторые, а havent "получил в любом месте.
Вы можете удалить каталог "work".
Вы уверены, что это не проблема кеширования браузера?
Я бы добавил, что в случае действительно странного поведения - где вы тратите пару часов на WTF - попробуйте вручную удалить каталог /webapps/yourwebapp/WEB-INF/classes
. Исходный файл java, перенесенный на другой пакет, не удалит файл скомпилированного класса - по крайней мере, в случае вложенного веб-приложения на TC. Это может серьезно свести вас с ума от непредсказуемого поведения, особенно с аннотированным сервлетом.
Немного поздно для вечеринки, вот как я это делаю
./shutdown.sh
/work/Catalina/...
./startup.sh
/webapps
и запустите его.Кажется, это временная метка. Согласно документации tomcat, если есть новый jsp или сервлет, это создаст новый _java файл в рабочей папке, если файлы _java.class не являются более новыми, чем jsp или сервлеты.
Tomcat также создает каталог ROOT
на том же уровне, что и work/
. ROOT/
также кэширует старые вещи. удалите ROOT
вместе с Catalina
в каталоге work
.
Я столкнулся с каким-то странным поведением, которое не отражает фактическую базу кода, поэтому через некоторое время, пробовав несколько решений, моя проблема была решена путем ручного удаления всего в /var/cache/tomcat8/
Похоже, что ваш загрузчик классов не загружает классы сервлета после их обновления. Это может быть исправлено, если вы измените файл web.xml, который должен побудить сервер/контейнер повторно развернуть и перезагрузить классы сервлета. Думаю, добавьте пустую строку в конец вашего web.xml и сохраните ее, а затем посмотрите, исправляет ли она ее. Как я уже сказал, это может исправить это или нет.
Удачи!
У меня плохое время ставить мой файл войны на /etc/tomcat7/webapps
, но реальный путь был /var/lib/tomcat7/webapps
. Можете ли вы использовать sudo find / -type f -name "my-war-file.war"
, чтобы узнать, где он.
И удалите эти папки /tmp/hsperfdata_*
и /tmp/tomcat7-tomcat7-tmp
.
У меня была одна и та же проблема дважды, но во второй раз я понял, что это не проблема для Tomcat вообще. Попробуйте удалить кеш браузера, обновите страницу и посмотрите, есть ли новая версия страницы на вашем сервере отображается. Он работал со мной.
Я новичок в tomcat, и эта проблема сегодня меня заводила. Это было спорадично. Я попросил коллегу помочь, и война расширилась, и это было так, как предполагалось. 3 развертывается позже в тот же день, он вернется к исходной версии.
В моем случае MySite.WAR расширился до ROOT И MySite. MySite обычно подавали. Но иногда tomcat решил, что ему понравился ROOT, и все мои изменения исчезли.
"Решение" заключается в удалении сайта ROOT при каждом развертывании войны.