Edytowałem plik „server.xml” w conf
folderze Tomcat 8 . Dodałem nowy Host
tag do nowej strony internetowej.
Czy muszę ponownie uruchomić serwer Tomcat?
Czy mogę zmusić Tomcat do przeanalizowania i zastosowania nowo edytowanej wersji server.xml
?
configuration
tomcat
Basil Bourque
źródło
źródło
<Host>
nie<Context>
.server.xml
jest analizowane raz podczas uruchamiania. Nie można go ponownie załadować bez ponownego uruchomienia.Odpowiedzi:
Zacznę od stwierdzenia, że pytanie nie jest całkowicie poprawnie wykonane, ponieważ całkiem możliwe jest edytowanie pliku bez ponownego uruchamiania Tomcat, ale zmiany są ignorowane przez uruchomiony proces.
Prawdziwe pytanie brzmi: jak zastosować zmiany
server.xml
bez ponownego uruchamiania Tomcat.Gromadząc informacje z procesu uruchamiania i stron modułu ładującego klasy w dokumentacji online Tomcat, można to zrozumieć bardziej szczegółowo.
Mówiąc dokładniej, jest to opisane w serverStartup.txt i diagramie UML procesu uruchamiania, a odpowiednie części można streścić w następujący sposób:
Dzieje się tak po utworzeniu modułu ładującego klasy Bootstrap silnika serwletu (Catalina).
Dzięki tym informacjom staje się jasne, że podczas procesu uruchamiania
server.xml
plik jest analizowany, ale tak naprawdę nie odpowiada na pytanie, dlaczego należy ponownie uruchomić Tomcat, aby zastosować zmiany w tym pliku.Odpowiedź jest taka, że pewną jego część można dynamicznie modyfikować w środowisku wykonawczym za pomocą JMX . Aby było to możliwe, konieczne było zarejestrowanie odpowiedniego komponentu MBean (krok b6 powyżej), a także zaakceptowanie operacji SET (niektóre komponenty MBean mają tylko interfejs GET).
W twoim konkretnym przypadku nie ma możliwości utworzenia i zarejestrowania nowego hosta w czasie wykonywania, ponieważ nie ma na to żadnego przepisu, i to jest powód, dla którego musisz zrestartować proces Tomcat, aby moduł ładujący klasy Bootstrap utworzył instancję tego obiektu i zarejestrował go w Agent JMX.
Następnie możliwe jest zmodyfikowanie tego hosta za pomocą klienta JMX, takiego jak
jconsole
dostarczany w pakiecie z dowolnym pakietem JDK.Połącz
jconsole
się z Tomcat obsługującym JMX i przejrzyj komponent MBean hosta, aby sprawdzić wszystkie dostępne atrybuty:i sprawdź wszystkie dostępne operacje (jedna z nich pokazana poniżej jako przykład):
źródło
Nie. Wymagane ponowne uruchomienie.
Strona dokumentu Tomcat dla
<Context>
wzmianek:źródło
we’re talking about <Host>, not <Context>.
-1 przepraszam, rzadko to robię, ale tam muszę ...