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

У меня есть военный файл моего приложения. Мне нужно развернуть это на корневом уровне. Текущий URL http://localhost:8080/war_name/application_name.

Ответ 1

У вас есть несколько вариантов:

  • Извлеките готовый каталог ROOT/ из tomcat и переименуйте файл войны в ROOT.war перед его развертыванием.

  • Разверните свою войну как (из вашего примера) war_name.war и настройте корневой контекст в conf/server.xml, чтобы использовать свою войну файл:

    <Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
    

Первый легче, но немного больше. Второй, вероятно, более элегантный способ сделать это.

Ответ 2

на tomcat v.7 (установка ванили)

в файле conf/server.xml добавьте следующий бит в конец файла перед тегом </Host>:

<Context path="" docBase="app_name">
    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Обратите внимание, что атрибут docBase. Это важный бит. Вы либо убедитесь, что вы развернули имя приложения до того, как вы изменили корневое веб-приложение, или просто скопируйте распакованный webapp (имя приложения) в свою папку tomapat webapps. Запуск, посещение root, см. Ваше имя приложения!

Ответ 3

В tomcat 7 с этими изменениями я могу получить доступ к myAPP at/и ROOT at/ROOT

<Context path="" docBase="myAPP">
     <!-- Default set of monitored resources -->
     <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="ROOT" docBase="ROOT">
     <!-- Default set of monitored resources -->
     <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Добавьте выше в раздел <Host> в файле server.xml

Ответ 4

Я знаю, что мой ответ похож на какой-то другой ответ, но это полное решение, имеющее некоторые преимущества. Это работает на Tomcat 8:

  • Основное приложение подается из корневого каталога
  • Развертывание военных файлов через веб-интерфейс поддерживается.
  • Основное приложение будет работать на порту 80, а только администраторы имеют доступ к папкам управления (я понимаю, что * nix-системы требуют суперпользователя для привязки к 80, но в Windows это не проблема).

Это означает, что вам нужно только перезапустить tomcat один раз, и после того, как обновленные военные файлы могут быть развернуты без проблем.

Шаг 1: В файле server.xml найдите запись коннектора и замените ее на:

<Connector 
    port="8080"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

<Connector
    port="80"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />

Шаг 2: Определите контексты в теге <Host ...>:

<Context path="/" docBase="CAS">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/ROOT" docBase="ROOT">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/manager" docBase="manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
<Context path="/host-manager" docBase="host-manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>

Обратите внимание, что я обращался ко всем приложениям в папке webapp. Первый из них эффективно переключает корень и основное приложение с позиции. ROOT теперь находится на http://example.com/ROOT, а основное приложение - на http://example.com/. Для Webapps, защищенных паролем, требуется атрибут privileged="true".

При развертывании файла CAS.war, который соответствует корневому (<Context path="/" docBase="CAS">, вам необходимо перезагрузить его на панели администратора, поскольку он не обновляется при развертывании.

Не включайте <Context path="/CAS" docBase="CAS"> в свои контексты, поскольку он отключает опцию менеджера для развертывания военных файлов. Это означает, что вы можете получить доступ к приложению двумя способами: http://example.com/ и http://example.com/APP/

Шаг 3: Чтобы предотвратить нежелательный доступ к папке с корнем и менеджером, добавьте valve к этим контекстным тегам следующим образом:

<Context path="/manager" docBase="manager" privileged="true">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Valve className="org.apache.catalina.valves.RemoteAddrValve"
        addConnectorPort="true"
        allow="143\.21\.2\.\d+;8080|127\.0\.0\.1;8080|::1;8080|0:0:0:0:0:0:0:1;8080"/>
</Context>

Это существенно ограничивает доступ к папке веб-приложения администратора для людей из моего собственного домена (поддельный IP-адрес) и localhost, когда они используют порт по умолчанию 8080 и поддерживает возможность динамического развертывания военных файлов через веб-интерфейс.

Если вы хотите использовать это для нескольких приложений, использующих разные IP-адреса, вы можете добавить IP-адрес к разъему (address="143.21.2.1").

Если вы хотите запустить несколько веб-приложений из корня, вы можете дублировать тег Service (используйте другое имя для второго) и изменить docbase <Context path="/" docBase="CAS"> на <Context path="/" docBase="ICR">.

Ответ 5

Удалите $CATALINA_HOME/webapps/ROOT. Обновите $CATALINA_HOME/conf/server.xml, убедитесь, что элемент Host выглядит следующим образом:

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="false" deployOnStartup="false">
  <Context path="" docBase="myApp"></Context>

Он работает с Tomcat 8. autoDeploy и deployOnStartup необходимо установить в значение false, чтобы предотвратить повторное развертывание tomcat myApp.

Ответ 6

Самый быстрый способ.

  • Убедитесь, что у вас нет приложения ROOT, разверните его, если у вас есть

  • Переименуйте свою войну в ROOT.war, разверните, вот и все, никаких изменений конфигурации не требуется

Ответ 7

Добавляя к @Rob Hruska sol, этот параметр в разделе server.xml внутри работает:

<Context path="" docBase="gateway" reloadable="true" override="true"> </Context>

Примечание: в некоторых случаях может потребоваться переопределение = "true".

Ответ 8

**** Эта ссылка должна ответить на вопросы о развертывании веб-приложения в корне tomcat. ****

Ответ 9

URL открытого менеджера томатов: - http://localhost:8080/manager/html/
затемв приложениях вы видите приложение с путем, когда "/" развернуто
, просто отмените его.
enter image description here Переименуйте файл войны вашего приложения в ROOT.war и просто укажите путь: -
C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps
Запустите Tomcat. Никаких дополнительных настроек не требуется.
Теперь мы можем видеть домашнюю страницу нашего приложения или настроенную ссылку на http://localhost:8080

Ответ 10

На моем сервере я использую это, и root autodeploy работает нормально:

   <Host name="mysite" autoDeploy="true" appBase="webapps" unpackWARs="true" deployOnStartup="true">
        <Alias>www.mysite.com</Alias>
        <Valve className="org.apache.catalina.valves.RemoteIpValve" protocolHeader="X-Forwarded-Proto"/>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
           prefix="mysite_access_log." suffix=".txt"
           pattern="%h %l %u %t &quot;%r&quot; %s %b"/>
        <Context path="/mysite" docBase="mysite" reloadable="true"/>
    </Host>