Jak zaktualizować aplikację webową Tomcat bez ponownego uruchamiania całej usługi?
Jestem nowy w Tomcat
. Mamy maszynę deweloperską z uruchomionymi około 5 aplikacjami. Mimo, że jest to dev, jest dość mocno używany przez naszych klientów podczas testów.
Więc powiedzmy, że musimy wprowadzić jedną małą zmianę w jednym pliku klasowym. W tej chwili musimy zamknąć Tomcat( wpływając na pozostałe cztery aplikacje), usunąć plik WAR
(i katalog aplikacji internetowych), ponownie załadować nowy plik WAR
i ponownie uruchomić Tomcat
.
Oczywiście denerwuje to kilka osób, ponieważ niszczy wszystkie zalogowane sesje dla wszystkich aplikacje.
Czy jest na to lepszy sposób? Chodzi mi o to, czy jest sposób, aby przeładować tylko klasę , która się zmieniła zamiast wszystkiego na maszynie dev? Dzięki.4 answers
Czy próbowałeś użyć aplikacji Tomcat ' S Manager? Pozwala na undeploy / wdrożyć pliki wojenne bez wyłączania Tomcat.
Jeśli nie chcesz używać aplikacji Manager, możesz również usunąć plik war z katalogu webapps, Tomcat cofnie aplikację po krótkim czasie. Następnie możesz skopiować plik wojenny z powrotem do katalogu, a Tomcat wdroży plik wojenny.
Jeśli używasz programu Tomcat w systemie Windows, może być konieczne skonfiguruj swój kontekst, aby nie blokował różnych plików.
Jeśli absolutnie nie możesz mieć żadnych przestojów, możesz przyjrzeć się równoległym wdrożeniom Tomcat 7 możesz wdrożyć wiele wersji aplikacji webowej z tą samą ścieżką kontekstową w tym samym czasie. Reguły używane do dopasowania żądań do wersji kontekstowej są następujące:
- jeśli w żądaniu nie ma informacji o sesji, użyj najnowszej wersji.
- Jeśli informacje o sesji są obecne w żądanie, sprawdź menedżera sesji dla każdej wersji pasującej sesji i jeśli jeden zostanie znaleziony, użyj tej wersji.
- Jeśli informacje o sesji są obecne w żądaniu, ale nie można znaleźć pasującej sesji, użyj najnowszej wersji.
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
2011-07-05 17:30:19
Istnieje wiele łatwych sposobów.
-
Po prostu dotknij sieci.xml dowolnej aplikacji internetowej.
touch /usr/share/tomcat/webapps/<WEBAPP-NAME>/WEB-INF/web.xml
Można również zaktualizować konkretny plik jar w WEB-INF / lib, a następnie dotknąć web.xml, zamiast budować cały plik war i wdrażać go ponownie.
Usuń katalog webapps / YOUR_WEB_APP, Tomcat rozpocznie wdrażanie wojny w ciągu 5 sekund (zakładając, że plik wojny nadal istnieje w folderze webapps).
Ogólnie nadpisanie pliku war z nowym wersja zostanie automatycznie przekierowana przez tomcat. Jeśli nie, możesz dotknąć sieci.xml jak wyjaśniono powyżej.
-
Skopiuj nad już eksplodował "katalog" do folderu webapps
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-12 16:53:10
W katalogu conf Apache tomcat znajdziesz context.plik xml. W tym znaczniku edytuj jako Context reloadable= "true" >. powinno to rozwiązać problem i nie trzeba ponownie uruchamiać serwera
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-07-21 20:29:34
Dla rozwoju....
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
2011-07-05 13:39:44