«1. Обзор
В этой быстрой статье мы обсудим развертывание веб-приложения в корневом каталоге Tomcat.
2. Основы и терминология развертывания Tomcat
Во-первых, основы развертывания приложения на Tomcat можно найти в этом руководстве: Как развернуть файл WAR на Tomcat.
Проще говоря, веб-приложения размещаются в папке $CATALINA_HOME\\webapps, где $CATALINA_HOME — это каталог установки Tomcat.
Контекстный путь относится к местоположению относительно адреса сервера, который представляет имя веб-приложения.
По умолчанию Tomcat получает его от имени развернутого файла войны. Поэтому, если мы развернем файл ExampleApp.war, он будет доступен по адресу http://localhost:8080/ExampleApp. т. е. контекстный путь — /ExampleApp.
Если нам теперь нужно, чтобы это приложение было доступно по адресу http://localhost:8080/, у нас есть несколько вариантов, которые мы обсудим в следующих разделах.
Более подробное объяснение концепции контекста Tomcat см. в официальной документации Tomcat.
3. Развертывание приложения как ROOT.war
Первый вариант очень прост: нам просто нужно удалить папку /ROOT/ по умолчанию в $CATALINA_HOME\\webapps, переименовать наш ExampleApp.war в ROOT.war и развернуть его.
Теперь наше приложение будет доступно по адресу http://localhost:8080/.
4. Указание контекстного пути в файле server.xml
Второй вариант — указать контекстный путь приложения в файле server.xml (который находится в $CATALINA_HOME\\conf).
Для этого мы должны вставить в тег \u003cHost\u003e следующее:
<Context path="" docBase="ExampleApp"></Context>
Примечание: определение контекстного пути вручную имеет побочный эффект, заключающийся в том, что приложение по умолчанию развертывается дважды: на http://localhost: 8080/ExampleApp/, а также по адресу http://localhost:8080/.
Чтобы предотвратить это, мы должны установить autoDeploy=“false” и deployOnStartup=“false” в теге \u003cHost\u003e:
<Host name="localhost" appBase="webapps" unpackWARs="true"
autoDeploy="false" deployOnStartup="false">
<Context path="" docBase="ExampleApp"></Context>
<!-- Further settings for localhost -->
</Host>
Важно: эта опция больше не рекомендуется, поскольку Tomcat 5: это делает конфигурации контекста более инвазивными, поскольку файл server.xml нельзя перезагрузить без перезапуска Tomcat.
5. Указание контекстного пути в XML-файле приложения
Чтобы избежать этой проблемы с server.xml, у нас есть третий вариант: мы установим контекстный путь в специфичном для приложения XML-файле. файл.
Поэтому мы должны создать ROOT.xml в $CATALINA_HOME\\conf\\Catalina\\localhost со следующим содержимым:
<Context docBase="../deploy/ExampleApp.war"/>
Два очка здесь ничего не стоят.
Во-первых, нам не нужно указывать путь явно, как в предыдущем варианте — Tomcat получает его из имени нашего ROOT.xml.
Во-вторых, поскольку мы определяем наш контекст в файле, отличном от server.xml, наша база документов должна находиться за пределами $CATALINA_HOME\\webApps.
6. Заключение
В этом руководстве мы обсудили различные варианты развертывания веб-приложения в корневом каталоге Tomcat.