2012-02-24 15 views
9

Stworzyłem wojnę i wdrożyłem ją do mojego katalogu $ CATALINA_HOME/webapps. Następnie chciałem przetestować konfigurację, aby wskazywało na wojnę w dowolnej lokalizacji, takiej jak c: \ tmp \ mywar.war. Oto, co umieściłem w pliku server.xml w katalogu $ CATALINA_HOME/conf.Kontekst mapowania Tomcat przez server.xml

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> 
<Context path="/blah" docBase="h:/tmp/mywar.war" reloadable="true" /> 
</Host> 

Tomcat zwraca 404, gdy próbuję załadować localhost: 8080/blah. Jeśli zamiast tego wskażę docBase na wojnę wybuchową, działa dobrze. Czego tu mi brakuje?

+0

Czy widzisz to wdrożone w zarządzaniu adminem Tomcata? – Cratylus

+0

Tak, jego rozmieszczenie jako/blah ale dostęp do niego zwraca tylko 404 –

+1

Wszystko w dziennikach? – mindas

Odpowiedz

0

nie rób tego, to podejście jest discouraged od Tomcat 6:

Dla Tomcat 6, w przeciwieństwie do Tomcat 4.x, nie jest zalecane, aby umieścić elementy bezpośrednio w pliku server.xml. Dzieje się tak dlatego, że modyfikowanie konfiguracji kontekstu jest bardziej inwazyjne, ponieważ główny plik conf/server.xml nie może zostać ponownie załadowany bez restartowania Tomcat.

+0

Ustawienie ustawień kontekstu w $ CATALINA_HOME/conf/localhost/blah.xml powoduje usunięcie konfiguracji każdego ponownego wdrożenia aplikacji. Chyba że istnieje sposób na wyłączenie tego zachowania, niezależnie od korzyści, jakie uzyskujesz, zachowując konfigurację z serwera server.xml, przeważa konieczność ręcznej zamiany konfiguracji xml. –

+0

Jest to zamierzone zachowanie i jest poprawne. Ponieważ plik jest powiązany z kontekstem, ** ma ** zostać usunięty z ponownym wdrożeniem. –

4

Lepiej umieść konfigurację kontekstu w pojedynczym pliku w /META-INF/context.xml wewnątrz plików aplikacji.

NIE zaleca się umieszczania elementów bezpośrednio w pliku server.xml. Dzieje się tak dlatego, że modyfikowanie konfiguracji kontekstu jest bardziej inwazyjne, ponieważ główny plik conf/server.xml nie może zostać ponownie załadowany bez restartowania Tomcat.

Możesz sprawdzić więcej szczegółów w Tomcat7 dokumencie tutaj: http://tomcat.apache.org/tomcat-7.0-doc/config/context.html#Defining_a_context

4

Jeśli chcesz mieć stronę dostępną na http://myhost:8080/myTestContext, umieścić następujące w $Catalina_home$/conf/localhost/whateveryoulike.xml

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> 
    <Context deployOnStartup="true" docBase="C:\path\to\your\docBase\" path="/myTestContext" reloadable="false"> 
    <Manager pathname=""/> 
</Context> 
0

po prostu wpadł na ten problem. Nieco żenujące było to, ponieważ źle podałem ścieżkę!

Można to sprawdzić poprzez sprawdzenie logów (standardowych błędów) pod

[Tomcat zainstalować katalog]/dzienniki

Zobaczysz coś, co wygląda tak:

Jun 16, 2014 12:34:10 PM org.apache.catalina.core.StandardContext resourcesStart SEVERE: Error starting static Resources java.lang.IllegalArgumentException: Document base ... does not exist or is not a readable directory

Kolejna uwaga (nie otrzymasz komunikatu o błędzie) polega na tym, że w przypadku wdrażania wojny zamiast rozbitej aplikacji internetowej musisz podać ścieżkę pliku i nie tylko zawiera katalog.

Powiązane problemy