Развертывание приложения в Tomcat Root

Развертывание приложения в Tomcat Root

1. обзор

В этой быстрой статье мы обсудим развертывание веб-приложения в корне Tomcat.

2. Основы и терминология развертывания Tomcat

Во-первых, основы развертывания приложения в Tomcat можно найти в этом руководстве:How to Deploy a WAR File to Tomcat.

Проще говоря, веб-приложения помещаются в$CATALINA_HOME\webapps, где$CATALINA_HOME - это каталог установки Tomcat.

Контекстный путь относится к местоположению относительно адреса сервера, который представляет имя веб-приложения.

По умолчанию Tomcat получает его из имени развернутого war-файла. Итак, если мы развернем файлExampleApp.war, он будет доступен вhttp://localhost:8080/ExampleApp. I. e. контекстный путь -/ExampleApp.

Если теперь нам нужно, чтобы это приложение было доступно вhttp://localhost:8080/, у нас есть несколько вариантов, которые мы обсудим в следующих разделах.

Для более подробного объяснения концепции контекста Tomcat взгляните на официальныйTomcat documentation.

3. Развертывание приложения какROOT.war

Первый вариант очень прост:we just have to delete the default /ROOT/ folder in $CATALINA_HOME\webapps, rename our ExampleApp.war to ROOT.war, and deploy it.

Наше приложение теперь будет доступно наhttp://localhost:8080/.

4. Указание пути контекста вserver.xml

Второй вариант - установить контекстный путь приложения вserver.xml (который находится в$CATALINA_HOME\conf).

Для этого мы должны вставить в тег<Host> следующее:

Note: defining the context path manually has the side effect that the application is deployed twice by default: athttp://localhost:8080/ExampleApp/, а также athttp://localhost:8080/.

Чтобы предотвратить это, мы должны установитьautoDeploy=”false” иdeployOnStartup=”false” в теге<Host>:


    

    

Важно: этот параметр больше не рекомендуется, так как Tomcat 5: он делает конфигурации контекста более агрессивными, поскольку файлserver.xml не может быть перезагружен без перезапуска Tomcat.

5. Указание пути к контексту в XML-файле приложения

Чтобы избежать этой проблемы сserver.xml, у нас есть третий вариант: мы установим путь контекста в файле XML для конкретного приложения.

Следовательно, мы должны создатьROOT.xml в$CATALINA_HOME\conf\Catalina\localhost со следующим содержимым:

Два пункта здесь ничего не стоят.

Во-первых, нам не нужно указывать путь явно, как в предыдущем варианте - Tomcat извлекает его из имени нашегоROOT.xml.

И во-вторых, поскольку мы определяем наш контекст в файле, отличном отserver.xml, нашdocBase должен находиться за пределами$CATALINA_HOME\webApps.

6. Заключение

В этом руководстве мы обсудили различные варианты развертывания веб-приложения в корне Tomcat.