Wdrażanie mojej aplikacji w katalogu głównym w Tomcat

Mam akta wojenne mojego podania. Muszę to wdrożyć na poziomie głównym. Aktualny adres URL to http://localhost:8080/war_name/application_name.

 109
Author: TRiG, 2011-03-16

8 answers

Masz kilka opcji:

  1. Usuń katalog ROOT/ z programu tomcat i zmień nazwę pliku war na ROOT.war przed jego wdrożeniem.

  2. Uruchom swoją wojnę jako (z twojego przykładu) war_name.war i skonfiguruj główny kontekst W conf/server.xml, Aby użyć pliku wojny :

    <Context path="" docBase="war_name" debug="0" reloadable="true"></Context>
    
Pierwszy jest łatwiejszy, ale trochę bardziej kludgy. Drugi to chyba bardziej elegancki sposób.
 184
Author: Rob Hruska,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-11 14:08:51

On tomcat V. 7 (vanilla installation)

W Twoim konf / serwerze.xml Dodaj następujący bit na końcu pliku, tuż przed znacznikiem zamykającym</Host>:

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

Zauważ, żedocBase atrybut. To ważna część. Przed zmianą głównej aplikacji internetowej upewnij się, że zainstalowałeś nazwę aplikacji lub po prostu skopiuj rozpakowaną aplikację webową (nazwę aplikacji) do folderu aplikacji webowej tomcat. Uruchom, odwiedź root, zobacz tam swoją nazwę aplikacji!

 30
Author: Peter Perháč,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 22:27:51

W tomcat 7 z tymi zmianami, jestem w stanie uzyskać dostęp do myAPP at / I 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>

Dodaj powyżej do sekcji <Host> w serwerze.xml

 11
Author: Sudheer Palyam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-14 08:25:28

Wiem, że moja odpowiedź trochę pokrywa się z inną odpowiedzią, ale jest to kompletne rozwiązanie, które ma pewne zalety. To działa na Tomcat 8:

  1. główna aplikacja jest obsługiwana z katalogu głównego
  2. rozmieszczanie plików wojennych przez interfejs WWW jest utrzymywane.
  3. główna aplikacja będzie działać na porcie 80, podczas gdy tylko administratorzy mają dostęp do folderów zarządzania (zdaję sobie sprawę, że *systemy nix wymagają superusera do wiązania z 80, ale na windows To nie jest problem).

Oznacza to, że trzeba tylko raz ponownie uruchomić tomcat, a po zaktualizowaniu plików wojennych można wdrożyć bez problemu.

Krok 1: Na serwerze.plik xml, znajdź wpis Złącza i zamień go na:

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

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

Krok 2: Definiowanie kontekstów w tagu <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>

Zauważ, że zająłem się wszystkimi aplikacjami w folderze webapp. Pierwszy skutecznie przełącza główny i główną aplikację z pozycji. ROOT jest teraz na http://example.com/ROOT i główna aplikacja jest włączona http://example.com/. Webappy zabezpieczone hasłem wymagają atrybutu privileged="true".

Kiedy rozmieścisz CAS.plik war, który pasuje do roota (<Context path="/" docBase="CAS"> musisz przeładować go w panelu administracyjnym, ponieważ nie odświeża się wraz z wdrożeniem.

Nie umieszczaj <Context path="/CAS" docBase="CAS"> w swoich kontekstach, ponieważ wyłącza to opcję menedżera do wdrażania plików wojennych. Oznacza to, że możesz uzyskać dostęp do aplikacji na dwa sposoby: http://example.com/ i http://example.com/APP/

Krok 3: Aby zapobiec niechciany dostęp do folderu root i manager, dodaj valve do tych znaczników kontekstowych, takich jak:

<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>

To zasadniczo ogranicza dostęp do folderu admin web app do osób z mojej własnej domeny (fałszywy adres IP) i localhost, gdy używają domyślnego portu 8080 i utrzymuje możliwość dynamicznego wdrażania plików wojennych za pośrednictwem interfejsu internetowego.

Jeśli chcesz użyć tego dla wielu aplikacji, które używają różnych adresów IP, możesz dodać adres IP do złącza (address="143.21.2.1").

Jeśli chcesz uruchomić wiele aplikacji internetowych z katalogu głównego, możesz zduplikować tag Service (użyj innej nazwy dla drugiego) i zmienić docbase <Context path="/" docBase="CAS"> na przykład <Context path="/" docBase="ICR">.

 9
Author: KimvdLinde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-22 14:52:29

Usuń $CATALINA_HOME/webapps/ROOT. Update $CATALINA_HOME/conf/server.xml, Upewnij się, że element hosta wygląda jak następujący tekst:

<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="false" deployOnStartup="false">
  <Context path="" docBase="myApp"></Context>
Działa z Tomcat 8. autoDeploy i deployOnStartup muszą być ustawione na false, aby zapobiec dwukrotnemu wdrożeniu programu tomcat myApp.
 5
Author: Jingguo Yao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-17 06:18:39

Najszybszy sposób.

  1. Upewnij się, że nie masz zainstalowanej aplikacji ROOT, undeploy jeśli masz jedną

  2. Zmień nazwę swojej wojny na ROOT.war, deploy, to wszystko, bez zmian konfiguracji

 4
Author: Dima,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-17 12:09:56

Dodawanie do sol @ Roba Hruska, to ustawienie na serwerze.xml wewnątrz sekcji działa:

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

Uwaga: override = "true" może być wymagane w niektórych przypadkach.

 1
Author: AVM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-06 05:05:58

Na moim serwerze używam tego i root autodeploy działa dobrze:

   <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>
 -1
Author: Mircea Stanciu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-25 07:04:58