Не удается полностью отключить веб-приложение в Tomcat 7

Я использую приложение manager в tomcat 7, и я не могу полностью отключить приложение.

Это говорит FAIL - Unable to delete [F:\apache-tomcat-7.0.33\webapps\balaji]. The continued presence of this file may cause problems.

Я где-то читал его из-за какого-то явления, называемого утечкой памяти, и если мы его исправим, проблема будет решена.

Может ли кто-нибудь сказать мне, что это за утечка памяти в tomcat 7, и как мы можем это исправить? Я использую ОС Windows 7. Если я смогу исправить это, мой процесс разворачивания и повторного развертывания будет плавным?

Ответ 1

Это очень часто встречается в среде Windows, но есть решение:

Откройте файл context.xml из /tomcat/conf и измените контекст, чтобы он соответствовал:

<Context antiResourceLocking="true">

Изменить: обновлены свойства, следующие за комментарием @JanM. Ранее он также содержал "antiJARLocking"

Ответ 2

Это одна из распространенных проблем с tomcat. Сервер Tomcat улавливает ресурсы при запуске и развертывает его. Хотя undeploying, некоторый ресурс все еще будет использоваться tomcat. Он еще не выпустил ресурс, но в то же время другой поток в tomcat попытается очистить те же ресурсы. Следовательно, удаление этих ресурсов не удастся. Один из лучших способов - вручную очистить корневой каталог приложения в webapps.

Ответ 3

Я столкнулся с той же проблемой в Apache Tomcat/8.0.5. Я сделал следующие шаги, используя приложение-менеджер, и это сработало для меня.

  • Закройте браузер, включая все вкладки (для удаления кеша).
  • Откроем "приложение-менеджер" и сначала убедитесь, что приложение (кнопка запуска должна быть включена).
  • Теперь нажмите на undeploy.

Я думаю, что при прямом нажатии на undeploy сначала он блокирует банки, останавливает приложение и пытается распаковать, но не с сообщением FAIL - Unable to delete.

Если вы действительно запутались со статусом, закройте браузер, перезапустите tomcat, откройте "приложение-менеджер", нажмите "Остановить" и затем отпустите.

Ответ 4

antiResourceLocking:
Если true, Tomcat предотвратит блокировку файлов. Это существенно повлияет на время запуска приложений, но позволяет полностью развертывать и развертывать webapp hot на платформах или в конфигурациях, где может произойти блокировка файлов. Если не указано, значение по умолчанию равно false.

Обратите внимание, что установка этого значения в true имеет некоторые побочные эффекты, включая отключение перезагрузки JSP на работающем сервере: см. Bugzilla 37668.

Обратите внимание, что установка этого флага в true в приложениях, которые находятся за пределами базы приложений для хоста (по умолчанию каталог Webapps) приведет к удалению приложения при завершении Tomcat. Вероятно, вы не хотите этого делать, поэтому подумайте дважды, прежде чем устанавливать antiResourceLocking = true в webapp, который находится за пределами приложения для своего хоста.