Как установить контекстный путь веб-приложения в Tomcat 7.0 - PullRequest
155 голосов
/ 02 сентября 2011

Я знаю, что могу переименовать свое веб-приложение (или его WAR-файл) в ROOT , но это ужасный способ сделать это, ИМХО. Теперь я проверил документацию кота и там написано

НЕ рекомендуется размещать элементы непосредственно в файл server.xml

Поэтому я попытался сделать это другим методом, который он предложил.

Отдельные элементы контекста могут быть явно определены: в отдельный файл в /META-INF/context.xml внутри файлов приложения.

Итак, я создал /META-INF/context.xml со следующим кодом,

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>

Но после развертывания, когда я перезапустил сервер, он все равно не смог загрузить контекст в "/", он все равно загрузил его с "/<WEB_APP_NAME>"

Любые указатели полезны.

Ответы [ 13 ]

0 голосов
/ 23 мая 2019

Самое простое и гибкое решение приведено ниже: Внутри $ {Tomcat_home} /config/server.xml

Измените autoDeploy = "false" deployOnStartup = "false" в Host элемент, как показано ниже Это необходимо.

<Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="false" deployOnStartup="false">

Добавьте строку ниже элемента Host .

<Context path="" docBase="ServletInAction.war"  reloadable="true">
            <WatchedResource>WEB-INF/web.xml</WatchedResource>
        </Context>

С учетом вышеПодход мы можем добавить как можно больше приложений в веб-приложения с разными именами контекстных путей.

0 голосов
/ 19 ноября 2018

В Tomcat 8.X, в домашней директории tomcat / conf / folder в server.xml вы можете добавить тег <Context> в тег <Host>, как показано ниже.Но вам нужно перезапустить сервер, чтобы эффект вступил в силу

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true">

     <Context docBase="${catalina.base}\webapps\<Your App Directory Name>" path="<your app path you wish>" reloadable="true" />
  </Host>

ИЛИ если вы используете Tomcat 7.X, вы можете добавить файл context.xml в папку WEB-INF в вашем проекте.Содержимое файла, который я использовал, показан ниже.и это работало нормально для меня.вам не нужно перезагружать сервер в этом случае.

<?xml version="1.0" encoding="UTF-8"?>

<Context docBase="${catalina.base}\webapps\<My App Directory Name>" path="<your app path you wish>" reloadable="true" />
0 голосов
/ 17 октября 2013

У меня сработал следующий трюк.

1) Прокомментируйте / удалите приведенную ниже конфигурацию из файла server.xml (внутри папки conf) tomcat.

2) Удалите существующую папку ROOT(Если есть), находящийся в папке tomcat webapps.И переименуйте ваш war-файл (например, test.war) в ROOT.war.

Помните, что при переименовании war-файла в ROOT.war «ROOT» должен быть прописными.

Ограничение: Выможет развернуть только одно приложение внутри одного экземпляра tomcat.

...