Загружает новый .war-файл, но tomcat каким-то образом продолжает обслуживать старый код? - PullRequest
2 голосов
/ 29 октября 2011

У меня есть простое приложение Java hello world, которое я развернул, и в новом коде я изменил вывод сервлета для печати некоторых операторов в цикле.

Локально работает.

Я загрузил новый .war-файл, остановил tomcat, удалил старый .war-файл в /webapps и взорванную папку.

Затем скопировал новый .war файл и перезапустил tomcat.

Папка взорвалась, но почему-то код устарел.

Может быть, это как-то кэширует файл .war?

Я изменил server.xml и установил autodeploy = false, но не уверен, что это актуально?

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

удалить рабочий каталог и перезапустить tomcat.

Слишком кратко извините. Tomcat превратит jsp в источник сервлета перед компиляцией, в рабочем каталоге происходит некоторое кэширование, это может быть причиной того, что это происходит.

Прошло некоторое время с тех пор, как я использовал Tomcat, но я вполне уверен, что структура была примерно такой: work / host / engine / context , поэтому вы, вероятно, найдете свои вещи в work / localhost / Каталина / - веб-контекст -

1 голос
/ 29 октября 2011

Я изменил server.xml и установил autodeploy = false, но не уверен, что это актуально?

oO.

Из документов

Это значение флага указывает, следует ли автоматически развертывать новые веб-приложения, добавленные в каталог appBase во время работы Tomcat.Значение флага по умолчанию равно true.См. Автоматическое развертывание приложений для получения дополнительной информации.

Я бы начал там.

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