2013-10-22 11 views
6

Czy istnieje sposób ustawienia względnej ścieżki do atrybutu docBase w pliku context.xml aplikacji sieci Web, więc znajduje się poza katalogiem appBase instancji serwera tomcat?Ścieżka względna w pliku Context.xml

Chciałbym móc współdzielić konfigurację kontekstu między komputerami i mieć aplikację w katalogu, a nie w pliku wojennym. W ten sposób mogę skompilować klasy bezpośrednio do tego katalogu (w moim katalogu rozwoju projektu) i mieć tomcat używać tych klas bez potrzeby kopiowania/pakowania.

Używam tomcat 8.0.0-RC5. Moja Układ katalogu jest:

/home/david/projects/frontend/web-content   <-- the static html files 
/home/david/projects/frontend/web-content/WEB-INF <-- the WEB-INF with the web.xml 
/home/david/projects/tomcat      <-- tomcat base directory 
/home/david/projects/tomcat/Catalina/localhost  <-- holds the frontend.xml context configuration 

Próbowałem

<?xml version="1.0" encoding="UTF-8"?> 
<Context path="/frontend" docBase="../../frontend/web-content"> 
</Context> 

ale to nie działa. Cała ścieżka przed/treść internetowa wydaje się być ignorowana. Dziennik pisze:

The main resource set specified [/home/david/projects/tomcat/webapps/web-content] is not valid 

Tomcat 8 documentation do pojemnika kontekstowego mówi:

Możesz określić bezwzględną ścieżkę do tego katalogu lub wojny pliku lub ścieżkę, która jest w stosunku do katalogu appBase z właścicielem hosta.

Czy względny tutaj oznacza ścisły podkatalog appBase (bez ..)?

Ustawienie bezwzględnej ścieżki działa bez problemów. Konfiguracja działa, ale jest specyficzna dla mojego komputera. Więc nie mogę już udostępniać konfiguracji kontekstu bez modyfikacji.

Mogłem utworzyć dowiązanie symboliczne wewnątrz katalogu appBase serwera tomcat i pozwolić mu wskazać folder z zawartością mojej aplikacji. To by działało, ale miałbym różne konfiguracje (dowiązania symboliczne) na maszynach linuksowych i Windows.

+2

Jak dokładnie ustawiony jest "appBase" w pliku server.xml? – david

+0

Nie zmieniłem konfiguracji Hosta w pliku server.xml, więc nadal jest to wartość domyślna: david

Odpowiedz

5

Wystarczy wziąć tylko nazwisko względnych nazw ścieżek i ignorując pierwsze części to najprawdopodobniej błąd w tomcat. Względne nazwy ścieżek powinny działać lub muszą powodować błędy. Ale ignorowanie części jest złe. Obejście problemu może mieć pełną nazwę ścieżki: <Context docBase="${catalina.home}/../www.war"

Właśnie czytam dziennik zmian Tomcat 8.0.15. Błąd powinien zostać naprawiony (!): "Prawidłowo obsłużyć wartości względne dla atrybutu docBase kontekstu."

Powiązane problemy