#java #tomcat #servlets
#java #tomcat #сервлеты
Вопрос:
У меня есть простое java-приложение hello world, которое я развернул, и в новом коде я изменил вывод сервлета, чтобы печатать некоторые инструкции в цикле.
Локально он работает нормально.
Я загрузил новый файл .war, остановил tomcat, удалил старый .файл войны /webapps
и разнесенная папка.
Затем я скопировал новый .war
файл, а затем перезапустил tomcat.
Он взорвал папку, но почему-то код старый.
Может ли это быть кэширование.файл войны каким-то образом?
Я изменил server.xml и установите autodeploy=false, но не уверены, имеет ли это значение?
Ответ №1:
удалите рабочий каталог и перезапустите tomcat.
Извините, слишком кратко. Tomcat превратит jsp в исходный код сервлета перед компиляцией, в рабочем каталоге происходит некоторое кэширование, это может быть причиной этого.
Прошло некоторое время с тех пор, как я использовал Tomcat, но я уверен, что структура была чем-то вроде work / host / engine / context, поэтому вы, вероятно, найдете свои материалы в разделе work / localhost / Catalina /—web context —
Комментарии:
1. Эта проблема преследовала меня на протяжении всего этого проекта. Спасибо, что показали мне, как это исправить.
Ответ №2:
Я изменил server.xml и установите autodeploy=false, но не уверены, имеет ли это значение?
ОО.
Из документов
Это значение флага указывает, должны ли автоматически развертываться новые веб-приложения, загруженные в каталог AppBase во время работы Tomcat. Значение флага по умолчанию равно true . Дополнительные сведения см. В разделе Автоматическое развертывание приложений.
Я бы начал с этого.