Serwer Tomcat to sztandarowy produkt projektu Jakarta opracowywanego przez Apache Software Foundation. Jest on implementacją specyfikacji Java Servlet SDK 2.2 firmy Sun oraz Java Server Pages 1.1. Tomcat działa bezproblemowo w systemach UNIX, Windows NT i Windows 2000. Użytkownicy systemów Windows 9x powinni zapoznać się ze stroną WWW poświęconą projektowi Tomcat, zawierającą wskazówki dotyczące konfiguracji tego serwera w tych systemach.
Istnieje co najmniej kilka różnych podejść do zagadnienia konfiguracji serwera Tomcat. Poniżej zaprezentowana będzie wersja proponowana przez autora książki „Java Servlet i Java Servlet Pages”- Marty Hall’a.
Zgodnie z jego zaleceniami konfiguracja serwera Tomcat składa się z ośmiu podsta-wowych kroków:
1. Instalacja serwera Apache Tomcat
Plik instalacyjny można pobrać ze strony
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/.
Należy zwrócić uwagę na zgodność wersji JDK z wersją Tomcat-a. Jeżeli w systemie zainstalowana jest wersja JDK 1.4 należy wybrać wersję „LE”. Jeżeli mamy JDK 1.3 wybieramy wersję standardową.
Na przykład dla Jakarta Tomcat 4.1.24 oraz JDK 1.4 należy wybrać plik jakarta-tomcat-4.1.24-LE-jdk14.zip.
2. Włączenie ROOT Context
ROOT Context jest domyślną aplikacją internetową w Tomkat-cie. W wersji Tomcat 3.0 aplikacja ta jest domyślnie włączona. Jednakże od wersji Tomcat 4.1.12 i nowszej jest wyłączona. Aby ją włączyć należy usunąć znacznik komentarza w pliku in-stall_dir/conf/server.xml w linii:
W najnowszej wersji Tomcat 5.0.3 może wystąpić błąd, polegający na tym, że brak jest znaku „/” backslash na końcu linii. Wtedy oczywiście należy go tam umieścić.
3. Włączenie wywoływania Serwletów
Element Invoker Servlet umożliwia uruchamianie serwletów bez koniecznych zmian w pliku WEB-INF/web.xml. Wystarczy wtedy umieścić serwlet w katalogu WEB-INF/classes i można go wywołać bezpośrednio przez adres URL w postaci http://host/serlet/ServletName. Jest to niezmiernie wygodne na wczesnym etapie na-uki JSP. Aż do wersji Tomcat 4.1.12 Invoker Servlet był włączony domyślnie. W wersjach nowszych jest on wyłączony ze względów bezpieczeństwa sieciowego.
Aby włączyć Invoker Servlet należy usunąć znacznik komentarza w elemencie serv-let-mapping w pliku install_dir/conf/web.xml ( ale nie w pliku .../server.xml, i nie należy mylić tego pliku z plikiem web.xml w katalogu WEB-INF)
4. Ustawienie numer portu na 80
W celu uniknięcia konfliktów z istniejącymi serwerami WWW zarówno Tomcat, jak i JSWDK używają niestandardowych portów. W razie wykorzystywania jednego z tych produktów do wstępnego tworzenia i testowania serwletów i stron JSP bez używania innego serwera WWW, zapewne najwygodniejsze jest używanie standardowego portu HTTP o numerze 80.
W przypadku Tomcata 3.0 numer portu można zmienić edytując plik
katalog_instalacyjny/server.xml. W pliku tym należy odszukać poniższy wiersz i za-mienić w nim liczbę 8080 na 80:
W przypadku serwera Tomcat 4.1 postępujemy następująco.
Zakładamy, że nie mamy żadnych serwisów na porcie 80. Zmiana ta umożliwi korzy-stanie z URL w postaci: http://localhost/blabla zamiast http://localhost:8080/blabla.
Uwaga: potrzebne będą uprawnienia administratora w systemie Unix. W przypad-ku Windows XP, który automatycznie uruchamia IIS na porcie 80, należy wyłączyć IIS.
Aby zmienić nr portu należy otworzyć plik install_dir/conf/server.xml i zmienić atry-but polecenia Connector z 8080 na 80 jak poniżej:
port="80" ...
... />
5. Włączenie powtórnego załadowania Serwletów do pamięci.
Następnym krokiem jest polecić serwerowi Tomcat sprawdzanie modyfikacji daty pliku class wymaganego przez serwlet i załadować go powtórnie do pamięci, gdy nastąpiła jakaś zmiana od ostatniego ładowania. Zwalnia to trochę działanie serwera, lecz ta zmiana zapobiega konieczności wyłączania i ponownego włączania serwera po każdej zmianie i powtórnej kompilacji serwletu.
Aby włączyć funkcję Servlet Reloading należy wejść do pliku install_dir/conf/server.xml i dodać linię DefaultContext do głównego elementu Service ustawiając atrybut reloadale na true. Najłatwiej dokonać tego odszukując następujący komentarz:
Tuż pod tym komentarzem należy umieścić linię kodu:
6. Ustawić zmienną JAVA_HOME
Jeśli wraz z Tomcatem używa się JDK 1.2 lub 1.3, należy określić wartość zmiennej środowiskowej JAVA_HOME i podać w niej nazwę katalogu instalacyjnego JDK. W przypadku JDK 1.1 określanie tej zmiennej środowiskowej nie jest konieczne. Najprostszym sposobem podania wartości zmiennej środowiskowej JAVA HOME jest dodanie linii w pliku
autoexec.bat:
set JAVA_HOME=C:\J2sdkl.4.0_05
Można także dokonać tego, zmieniając skrypt startowy startup (w przypadku Tomcata 3) lub catalina.bat Należy w notatniku otworzyć plik
install_dir/bin/catalina.bat i umieścić następujący kod tuż pod ostatnią linią komentarzy początkowych i zapamiętać zmianę:
if not "%JAVA HOME%" = = "" goto gotJavaHome
set JAVA_HOME=C:\J2sdkl.4.0_05
:gotJavaHome
7. Zmiana ustawień pamięci systemu MSDOS.
Podczas uruchamiania Tomcata lub JSWDK w systemach MS Windows 95 lub MS Windows 98 najczęściej trzeba dokonać modyfikacji wielkości pamięci przydzielanej dla zmiennych środowiskowych programów MS DOS. W przeciwnym wypadku może pojawić się komunikat:
„Out of environmental Space”.
W tym celu należy uruchomić nowe okno trybu MS DOS, kliknąć ikonę znajdującą się w jego lewym, górnym narożniku i z wyświetlonego menu wybrać opcję Właściwości. Następnie należy przejść na zakładkę Pamięć i z listy rozwijanej Środowisko pierwotne wybrać wartość 2816.
8. Ustawienie zmiennej CATALINA_HOME (opcjonalne)
Jeżeli zdarzy się nam utworzyć kilka kopii skryptów startowych startup i zamykających serwer shutdown dobrze jest ustawić zmienną środowiskową CATALINA_HOME, która umożliwia odniesienie się do najwyższego poziomu w katalogu instalacyjnym Apache Tomcat. Zmienna ta zawiera informację dla serwera gdzie jest główny katalog Tomcat-a.
Zmiana ta nie jest konieczna, jeśli jesteśmy pewni że nie ma innych kopii tych plików.