Wdrażanie aplikacji na serwer

Wdrażanie pliku WAR z użyciem Tomcat Managera

Aby wdrożyć plik WAR z użyciem Tomcat Managera przechodzimy do managera aplikacji (wybieramy Manager App ze strony głównej Tomcata), przechodzimy do sekcji „Deploy”.

Następnie przyciskamy „wybierz plik” i wybieramy archiwum war które chcemy zainstalować. Następne naciskamy przycisk „Deploy”. Aplikacja powinna automatycznie zostać uruchomiona.

Możemy teraz kliknąć na link do aplikacji znajdujący się na liście aplikacji by do niej przejść:

Na potrzeby tego przykładu stworzyłem bardzo prostą aplikację i wdrożyłem ją w wyżej opisany sposób. Aplikacja znajdzie się pod adresem stanowiącym nazwę hosta z Tomcatem, ewentualnie port, znaku / i nazwy tej aplikacji. Wielkość liter ma znaczenie!

Aplikacja powinna zostać po wdrożeniu automatycznie uruchomiona, jeśli jednak na liście aplikacji przy tej apce dostępny jest przycisk „Start”, to oznacza to że nie została ona uruchomiona i należy zajrzeć do logów w celu znalezienia przyczyny takie stanu rzeczy.

Nasz plik wylądował w podkatalogu webapps Tomcata, a także został w tym samym katalogu rozpakowany.

Automatyczne rozpakowywanie archiwum WAR

To że aplikacja jest rozpakowywana z pliku WAR jest zasługą domyślnego ustawienia parametru unpackWARs w pliku conf/server.xml

Jeśli ta wartość jest ustawiona na true, będzie działo się tak jak przed momentem. Jeśli zmienisz to ustawienie na false, plik war nie będzie rozpakowywany a żądane pliki będą czytane bezpośrednio z archiwum. Na potrzeby pokazania tej funkcjonalności zmieniłem parametr unpackWARs na false, stworzyłem kolejną aplikację i ją wdrożyłem:

Tym razem archiwum nie zostało jednak rozpakowane:

Wdrażanie bez użycia aplikacji Tomcat Manager

Aplikacje możemy wdrażać również ręcznie, bez korzystania z aplikacji Tomcat Manager. Wystarczy umieścić aplikację w podkatalogu WEBAPPS serwera Tomcat, wszystko jedno czy prześlesz w postaci spakowanego archiwum WAR czy rozpakujesz WARa do katalogu i wtedy prześlesz.

Aplikacja powinna zostać wdrożona od razu, bez potrzeby restartowania serwera.

Wdrożone w ten sposób aplikacje również będą widoczne na liście w managerze aplikacji:

Ciekawostka – możesz wyedytować pliki w aplikacji „na żywca” na serwerze, a wszelkie zmiany zostaną od rau zaimplementowane.

Deinstalacja aplikacji

Aplikację możesz odinstalować wybierając przycisk „Undeploy”. W managerze aplikacji.

Niezależnie od sposobu wdrożenia kasowany jest także fizycznie katalog aplikacji i plik WAR z katalogu WEBAPPS. Wynika to z faktu automatycznego wdrażania aplikacji które znajdują się w tym katalogu. Gdyby tak nie było, po chwili nasza aplikacji znowu by się sama wdrożyła ze względu na ustawienie parametr autoDeploy w pliku server.xml

Możesz też skasować fizycznie katalog aplikacji i plik WAR z katalogu WEBAPPS. W takim przypadku link do aplikacji również samoczynnie znika z listy dostępnych aplikacji.

Zmiana adresu aplikacji

Zauważ że aplikacja domyślnie znajduje się pod adresem zgodnym z jej nazwą. Jeśli chciałbyś by Twoja aplikacja była dostępna pod innym adresem, wprowadź analogiczny do poniższego wpis do pliku server.xml:

 

w obrębie sekcji „HOST” tak by w efekcie uzyskać zapis jak niżej:

Po tej zmianie koniecznie trzeba zrestartować serwer by mógł wczytać nowe ustawienia. Aplikacja będzie dostępna zarówno pod dotychczasowym adresem „OMG” jak i nowym wskazanym „innyadres”:

Sprawdźmy jeszcze jak się ładuje:

Wdrażanie jako domyślna główna aplikacja

Ustawienie wybranej aplikacji jako głównej dla Tomcata sprowadza się do podobnej zmiany co wdrożenie aplikacji pod innym adresem. Edytujemy plik conf/server.xml i w elemencie Context (jeśli go nie ma to go dodajemy) wprowadzamy pusty ciąg w miejsce „path” jak widać poniżej:

Od tej pory po wprowadzeniu adresu serwera i portu (a jeśli Tomcat działa na porcie 80 to także bez portu) powinniśmy zobaczyć aplikację znajdującą się w podkatalogu OMG w webapps:

Alternatywnie możesz rozpakować aplikację do podkatalogu ROOT wewnątrz katalogu webapps. Efekt będzie ten sam. Pamiętaj o restarcie Tomcata.

Zmiana adresu aplikacji wdrożonej jako archiwum WAR bez rozpakowywania

Tak jak zmienialiśmy adres dostępowy do rozpakowanej aplikacji, tak możemy to zrobić dla aplikacji wdrożonej jako WAR bez jej rozpakowywania. Zmiana polega na wprowadzeniu do conf/server.xml takiego samego wpisu jak wcześniej, z tą jednak różnicą że tym razem jako docBase podajemy plik WAR a nie nazwę katalogu. Na poniższej ilustracji zaznaczyłem też fragment odnoszący się do rozpakowywania plików WAR w ogóle przy okacji wdrożenia. Najlepiej przy takiej konfiguracji ustawić rozpakowywanie plików WAR na false, aby nie pomylić później faktycznego źródła wszelkich plików aplikacji.

Zatrzymywanie i startowanie aplikacji z użyciem Tomcat Manager’a.

Serwer Tomcat umożliwia zatrzymywanie i uruchamianie wybranych aplikacji, bez potrzeby zatrzymywania i uruchamiania całego serwera. Na potrzeby przykładu stworzyłem przykładową aplikację i wdrożyłem ją na serwer:

Na liście aplikacji po prawej stronie znajduje się kolumna „Commands”. Klikamy „Stop” przy wybranej aplikacji.

 

W górnej części panelu powinniśmy zobaczyć taki komunikat:

Po zatrzymaniu aplikacji i próbie dostępu do niej, otrzymujemy komunikat taki jakby nie było aplikacji w ogóle.

Naciśnięcie przycisku „START” obok użytego przed momentem przycisku „STOP” spowoduje ponowne uruchomienie aplikacji. Jeśli aplikacja zostaje zatrzymana, to po ponownym uruchomieniu serwera taka NIE pozostanie! Zostanie uruchomiona razem z serwerem!

Sesje aplikacji i ich rozłączanie

Z poziomu Tomcat Managera możemy także podejrzeć aktualnie podpięte do aplikacji sesje. Na liście aplikacji mamy kolumnę „Sessions”.

Kiedy klikniemy na liczbę przy wybranej aplikacji, przejdziemy do listy aktualnie trwających sesji.

Z poziomu tego widoku możemy także przerwać wybrane sesje. Wystarczy zaznaczyć checkbox obok wybranej sesji, a następnie użyć przycisku „Invalidate selected sessions”

Każda sesja ma swój określony czas „ważności”. Domyślnie jest to 30 minut, tę własność konfiguruje się w pliku web.xml wewnątrz aplikacji. Po upływie tego czasu sesje się „unieważniają” co sprowadzać się będzie do np. wylogowania z aplikacji i konieczności ponownego zalogowania. Z poziomu panelu managera Tomcata możemy „unieważnić” wszystkie sesje które pozostają bezczynne od wskazanego czasu. Wystaczy w polu „idle time” wpisać liczbę minut, a następnie kliknąć „Expire sessions”. Wszystkie sesje bezczynne od przynajmniej wskazanego czasu zostaną „unieważnione”.

Ten artykuł jest elementem poniższych kursów: