Jak ustawić ścieżkę kontekstową aplikacji internetowej w Tomcat 7.0

Wiem, że mogę zmienić nazwę mojej webapp (lub jest to plik wojenny) na ROOT ale to jest straszny sposób, aby to zrobić, IMHO. Teraz sprawdziłem Tomcat doc i pisze

Nie zaleca się umieszczania elementów bezpośrednio w serwer.plik xml

Więc spróbowałem zrobić to inną metodą, którą zasugerował.

Poszczególne elementy kontekstu można jednoznacznie zdefiniować: w pojedynczy plik w /META-INF / context.xml wewnątrz aplikacji pliki.

Więc stworzyłem {[1] } z następującym kodem,

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

Ale po wdrożeniu, gdy ponownie uruchomiłem serwer, nadal nie udało się załadować kontekstu na"/", nadal ładował go z "/<WEB_APP_NAME>"

Wszelkie wskazówki pomocne.
Author: Lucky, 2011-09-02

11 answers

To, co możesz zrobić, to:

Dodaj plik o nazwie ROOT.xml w <catalina_home>/conf/Catalina/localhost/

Ten korzeń.xml nadpisze domyślne ustawienia dla głównego kontekstu instalacji tomcat dla tego silnika i hosta(Catalina i localhost).

Wprowadź następujące dane do katalogu głównego.plik xml;

<Context 
  docBase="<yourApp>" 
  path="" 
  reloadable="true" 
/>

Tutaj, <yourApp> to nazwa Twojej aplikacji.. :)

I proszę bardzo, Twoja aplikacja jest teraz domyślną aplikacją i pojawi się na http://localhost:8080

Jednak tam jest jednym efektem ubocznym; aplikacja zostanie załadowana dwukrotnie. Raz na localhost:8080 i raz na localhost:8080/yourApp. Aby to naprawić, możesz umieścić swoją aplikację poza <catalina_home>/webapps i użyć względnej lub bezwzględnej ścieżki w katalogu głównym.znacznik docBase xml. Coś takiego;

<Context 
  docBase="/opt/mywebapps/<yourApp>" 
  path="" 
  reloadable="true" 
/>

I wtedy wszystko powinno być OK!

 202
Author: Paaske,
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-07-24 18:02:09

Oto jedyne rozwiązania, które zadziałały dla mnie. Dodaj to do węzła hosta w konf / serwerze.xml

<Context path="" docBase="yourAppContextName">

  <!-- Default set of monitored resources -->
  <WatchedResource>WEB-INF/web.xml</WatchedResource>

</Context>

Przejdź do serwera Tomcat.plik xml i ustaw ścieżkę pustą

 13
Author: rodvlopes,
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-03-27 21:09:37

Ten mały kod zadziałał dla mnie, używając wirtualnych hostów

<Host name="my.host.name" >
   <Context path="" docBase="/path/to/myapp.war"/>
</Host>
 3
Author: Jorge Sanchez,
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-06-20 15:59:27

W Tomcat 9.0 muszę tylko zmienić następujące w server.xml

<Context docBase="web" path="/web" reloadable="true" source="org.eclipse.jst.jee.server:web"/>

Do

<Context docBase="web" path="" reloadable="true" source="org.eclipse.jst.jee.server:web"/>
 3
Author: MK Yung,
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
2018-04-09 16:04:43

Najszybsze i może być najlepszym rozwiązaniem jest posiadanie poniżej treści w <TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml

<Context 
  docBase="/your_webapp_location_directory" 
  path="" 
  reloadable="true" 
/>

I Twoja aplikacja webapp będzie dostępna w http://<host>:<port>/

 2
Author: Rajesh Gheware,
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-18 13:29:03

Borykałem się z tym problemem przez miesiąc, umieszczając tag kontekstowy wewnątrz serwera.xml nie jest bezpieczny wpływa na elementy kontekstu wdrażanie dla wszystkich innych hostów, dla dużych aplikacji bierze błędy połączenia również nie jest dobra izolacja na przykład możesz uzyskać dostęp do innych witryn po nazwie folderu domain2.com/domain1Folder !! również połączenia sesji bazy danych ładowane dwa razy ! innym sposobem jest umieścić korzeń.plik xml zawierający znacznik kontekstowy z pełną ścieżką:

 <Context path="" docBase="/var/lib/tomcat7/webapps/ROOT" />

In conf / catalina / webappsfoldername i wdrożyć plik war jako ROOT.war inside webappsfoldername a także określić hosta takie

 <Host name="domianname"  appBase="webapps2" unpackWARs="true"  autoDeploy="true"  xmlValidation="false" xmlNamespaceAware="false" >

        <Logger className="org.apache.catalina.logger.FileLogger"
               directory="logs"  prefix="localhost_log." suffix=".txt"
          timestamp="true"/>
</Host>

W tym podejściu również dla tego samego typu aplikacji sesje użytkownika nie ma dobrej izolacji ! możesz wewnątrz app1 jeśli app1 tak samo jak app2 możesz po zalogowaniu przez sesję po stronie serwera automatycznie zalogować się do app2 ?! Więc musisz zachować sesję użytkowników w pamięci podręcznej po stronie klienta, a nie w jsessionid ! możemy zmienić nazwę silnika z localhost, aby go rozwiązać. ale powiedzmy, że zabawa z tomcat wymaga więcej czasu niż zabawa z innymi koty!

 1
Author: Ali.Mojtehedy,
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-03-20 22:25:12

<Context docBase="yourAppName" path="" reloadable="true">

Przejdź do serwera Tomcat.plik xml i ustaw ścieżkę pustą

 1
Author: Vipin Yadav,
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-01-11 12:11:56

Tomcat 8 : Po wielu wyszukiwaniach działa tylko kod: na serwerze.xml

<!-- Set /apple as default path -->
    <Host name="localhost"  appBase="webapps"
         unpackWARs="true" autoDeploy="true">
     <Context path="" docBase="apple">
         <!-- Default set of monitored resources -->
         <WatchedResource>WEB-INF/web.xml</WatchedResource>
     </Context>
    </Host>

Uruchom ponownie Tomcat, upewnij się, że gdy uzyskasz dostęp do 127.0.0.1:8080, wyświetli zawartość w 127.0.0.1:8080/apple

Moim projektem była java Web application witch stworzona przez netbeans, ustawiłem ścieżkę kontekstową w konfiguracji projektu, nic innego, nawet włożyłem apple.wojna w folderze webapps.

 1
Author: user3600935,
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
2018-04-03 19:43:40

Nie jest zalecane, aby aktualizować konfigurację serwera jak serwer.xml lub ROOT.xml.

Możesz umieścić kontekst.plik konfiguracyjny XML w katalogu META-INF aplikacji webowej z włączonym ustawieniem ścieżki kontekstowej. Spowoduje to zastąpienie domyślnego ustawienia serwera?

Czyli:

<Context docBase="yourAppName" path="/yourAppPath" reloadable="true">
 0
Author: Ivan,
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-01-16 04:28:57

Dla mnie obie odpowiedzi zadziałały.

  1. dodanie pliku o nazwie ROOT.xml in / conf / Catalina/localhost /
<Context
    docBase="/tmp/wars/hpong"
  path=""
  reloadable="true"
/>
  1. dodawanie wpisu na serwerze.xml
<Service name="Catalina2">
    <Connector port="8070" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8743" />
    <Engine name="Catalina2" defaultHost="localhost">
        <Host name="localhost"
            unpackWARs="true" autoDeploy="true">
            <Context path="" docBase="/tmp/wars/hpong"  reloadable="true">
                <WatchedResource>WEB-INF/web.xml</WatchedResource>
            </Context>
      </Host>
    </Engine>
</Service>

Uwaga: Gdy deklarujesz docBase w kontekście, ignoruj appBase na hoście.

  1. jednak wolałem konwertowanie mojej nazwy wojennej jako {[2] } i umieścić go pod webapps. Tak więc teraz niezrównane żądania url z innych wojen (ścieżki kontekstowe) wylądują w tej wojnie. Tak jest lepiej. do obsługi ścieżki kontekstowej ROOT ("/**").

Drugą opcją jest (podwójne) ładowanie wars z folderu Webapps, jak również. Ponadto potrzebuje tylko nieskompresowanego folderu wojennego, który jest bólem głowy.

 0
Author: Kanagavelu Sugumar,
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
2018-07-18 05:29:51

Poniższy trik zadziałał na mnie.

1) Skomentuj / Usuń poniższą konfigurację z serwera.plik xml (w folderze conf) programu tomcat.

2) Usuń istniejący folder główny (jeśli istnieje) znajdujący się w folderze Tomcat webapps. I zmienić nazwę swojej wojny (np.: test.war) plik do roota.wojna.

Pamiętaj o tym podczas zmiany nazwy pliku war na ROOT.wojna "korzeń" powinien być w kapslach.

Ograniczenie: można wdrożyć tylko jedną aplikację wewnątrz jednej instancji tomcat.

 -6
Author: Kulshrest Gautam,
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-10-17 06:35:13