Instalowanie aplikacji webowej na Tomcat 7

Wiemy już jak uruchomić sam serwer, ale nie umiemy jeszcze instalować (deploy’ować) na nim naszych aplikacji. Nie jest to trudny proces. Krok pierwszy – potrzebujemy paczki (pliku *.war) – czyli skompilowanej aplikacji. Uzyskujemy ją uruchamiając Build Project z poziomu NetBeans (ewentualnie Clean and Build):

Samo Build Project spowoduje tylko zbudowanie paczki, natomiast Clean and Build powoduje wyczyszczenie katalogu build/ projektu w którym przechowywane są skompilowane wersje naszych plików. W logach Ant’a (czyli narzędzia kompilującego projekt) znajduje się dokładna lokalizacja paczki z aplikacją:

We wskazanym przez Ant’a folderze pojawił się plik WebApplication1.war – gotowy już do zainstalowania na Tomcat’cie.

WAŻNE!
Kolejne kroki wykonujemy przy wyłączonym serwerze Tomcat. Jeśli pozostawisz serwer uruchomiony zaobserwujesz bardzo dziwne (dziwne za pierwszym razem ?) zachowanie Tomcat’a. Powyższy plik kopiujemy do folderu webapps/ Tomcat’a i wypakowujemy jego zawartość do nowego folderu za pomocą 7zip albo WinRar. Później bezwzględnie kasujemy plik WAR!.

Jeśli wykonałeś już powyższe procedury możesz przejść folder wyżej i skasować całą zawartość katalogu work/. Tak tak :) Ctrl + A >> Shift + Delete – bez obaw. W katalogu work/, tak jak już powiedziałem znajdują się skompilowane pliki JSP. Jeśli ich nie skasujemy może dojść do sytuacji w której aplikacja będzie wyposażona w nowe wersje JSP, a serwer użyje starych ponieważ będzie widział, że takie pliki ma już skompilowane. Teraz mogę już bezpiecznie uruchomić kontener Tomcat i sprawdzić czy poprawnie zainstalowaliśmy aplikację:

Czyżby coś poszło nie tak? Nie! Chodzi o brak biblioteki odpowiedzialnej za obsługę tagów JSTL. Problemem jest to, że Tomcat jest tylko kontenerem webowym, a GlassFish był pełnym serwerem aplikacyjnym – po prostu zawierał sam w sobie bibliotekę umożliwiającą korzystanie z tagów JSTL. Uruchamiając to samo na Tomcat’cie musimy dołączyć taką bibliotekę ręcznie:

Gdy projekt zostanie wzbogacony o bibliotekę JSTL – powtarzamy procedurę deploy’u i tym razem już pokaże się dokładnie to samo, co widzieliśmy na serwerze GlassFish.

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