Tomcat: разница между папкой «webapps /» и папкой «webapps / ROOT /» - PullRequest
0 голосов
/ 21 марта 2019

Я заметил, что эти папки имеют очень разные свойства. Я недавно развернул файл .war в папке webapps. Я заметил, что после развертывания .war-файла в каталог была добавлена ​​несжатая версия проекта. Когда я пытаюсь изменить какие-либо файлы в несжатой версии, сервер Tomcat не меняет поведение моего приложения (я не вижу изменений при запуске приложения через веб-браузер). Однако, если я помещу этот же проект в webapps / ROOT, изменение в моем приложении приведет к мгновенному изменению поведения моего приложения (что можно увидеть через браузер).

Вот еще один пример. В настоящее время у меня ошибка HTTP 415 в некоторых приложениях. Когда я развернул его с помощью файла .war в папке webapps, я получил эту ошибку. Однако, если я помещаю несжатую версию приложения в webapps / ROOT, ошибка исчезает, и мое приложение работает отлично.

Это подводит меня к моему вопросу. Чем эти две папки отличаются? Чем можно объяснить эти различия между этими папками?

1 Ответ

0 голосов
/ 21 марта 2019

После того, как я попробовал разные вещи, я нашел следующее:

Я понял, что папка webapps - это папка, определенная как 'appBase' сервера.(Эта переменная может быть настроена в файле server.xml, расположенном в папке conf, которая видна из корневого файла вашего Apache tomcat) Другими словами, она служит прямым местоположением, где Tomcat ищет приложение.

Однако не сказано, что Tomcat не заходит в папки;именно поэтому мои веб-приложения могут обновляться и получать ошибки в веб-приложениях, но не в ROOT.Я знаю это, потому что я изменил переменную 'appBase' прямо на то место, где находились мои приложения, и внезапно они показывали ошибки от tomcat.

Если в веб-приложение вносятся изменения по определенному пути 'appBase', им нужнобыть перезагруженным определенным образом.Одним из них является использование функции диспетчера Tomcat, а другим - удаление файлов в рабочей папке (находится в основной папке Apache Tomcat. Продолжайте нажимать на папки из рабочей папки, пока не перейдете в основную папку веб-приложения).Компонент Tomcat Manager может быть более утомительной для реализации задачей, потому что нужно знать, как настроить пользователей для tomcat (в tomcat-users.xml, который находится в папке conf), и документация для этого ограничена.Второе решение, которое заключается в удалении вашего веб-приложения, находящегося в рабочей папке, может быть выполнено во время работы tomcat и сразу же выполнит ваши изменения.

Более подробную информацию можно найти в другой публикации Stack Overflow: Как заставить tomcat перезагрузить недавно скомпилированные файлы классов / военных действий

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