Jestem nowy Tomcat
. Mamy maszynę deweloperską z około 5 uruchomionymi aplikacjami. Mimo że jest to programista, nasi klienci używają go dość intensywnie podczas testów.
Powiedzmy, że musimy dokonać jednej małej zmiany w jednym pliku klasy. W tej chwili musimy zamknąć Tomcat (wpływając na pozostałe cztery aplikacje), usunąć WAR
plik (i katalog aplikacji internetowej), ponownie wdrożyć nowy WAR
plik i ponownie uruchomić Tomcat
.
Oczywiście denerwuje to kilka osób, ponieważ niszczy wszystkie zalogowane sesje dla wszystkich aplikacji.
Czy jest lepszy sposób, aby to zrobić? Chodzi mi o to, czy istnieje sposób, aby ponownie załadować zmienioną klasę zamiast wszystkiego na maszynie deweloperskiej?
Dzięki.
tomcat
deployment
war
cbmeeks
źródło
źródło
Odpowiedzi:
Czy próbowałeś użyć aplikacji Tomcat's Manager ? Pozwala cofnąć wdrażanie / wdrażanie plików wojennych bez wyłączania Tomcata.
Jeśli nie chcesz używać aplikacji Manager, możesz również usunąć plik war z katalogu webapps, Tomcat cofnie wdrożenie aplikacji 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 Tomcat w systemie Windows, może być konieczne skonfigurowanie kontekstu, aby nie blokować różnych plików.
Jeśli absolutnie nie możesz mieć żadnych przestojów, możesz przyjrzeć się wdrożeniom równoległym Tomcat 7. Możesz wdrożyć wiele wersji aplikacji internetowej z tą samą ścieżką kontekstową w tym samym czasie. Reguły używane do dopasowywania żądań do wersji kontekstu są następujące:
źródło
Istnieje wiele łatwych sposobów.
Wystarczy dotknąć web.xml dowolnej aplikacji internetowej.
Możesz także zaktualizować konkretny plik jar w WEB-INF / lib, a następnie dotknąć web.xml, zamiast tworzyć cały plik wojny 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 twój plik wojenny nadal istnieje w folderze webapps).
Ogólnie rzecz biorąc, nadpisywanie pliku wojennego nową wersją jest ponownie wdrażane przez tomcat automatycznie. Jeśli nie, możesz dotknąć pliku web.xml, jak wyjaśniono powyżej.
Skopiuj już rozebrany „katalog” do folderu webapps
źródło
$CATALINA_BASE/conf/context.xml
. WEB-INF / web.xml jest obserwowany pod kątem zmian. W razie potrzeby można tam łatwo wymienić inne zasoby.W katalogu conf apache tomcat można znaleźć plik context.xml. W tym tagu edycji jako < Context reloadable = "true" >. powinno to rozwiązać problem i nie ma potrzeby ponownego uruchamiania serwera
źródło