Dieser Eintrag soll als kleine Anleitung zur Erstellung einer von der eigentlichen Installation unabhängigen Konfiguration des Tomcat Web Application Server dienen. Die Idee dahinter ist die, Installation und Konfiguration zu trennen, um beispielsweise die Wartung zu vereinfachen. In vielen Fällen werden die Webanwendungen direkt im Installationsverzeichnis installiert, ebenso wird die Konfiguration dort direkt angepaßt. Das führt jedoch dazu, daß die gesamte Arbeit wiederholt erledigt werden muß, wenn z.B. der Tomcat in einer neuen Version installiert wird.
Diese Anleitung soll nun einen Weg aufzeigen, wie man diesen Wartungsaufwand deutlich minimieren kann. Hierzu muß man wissen, daß der Tomcat bereits seit langem die Trennung von Installation und Konfiguration unterstützt. Dies geschieht über die beiden Umgebungsvariablen catalina.home und catalina.base. Erstere verweist auf das Installationsverzeichnis des Tomcat, letztere auf die zu nutzende Konfiguration. Im Normalfall verweisen beide auf das gleiche Verzeichnis: Eben die gekoppelte, wartungsintensive Variante.
Man kann nun eine Konfiguration zusammen mit allen Webanwendungen sowie zusätzlich notwendigen Bibliotheken in einem beliebigen Verzeichnis ablegen und die Umgebungsvariable catalina.base entsprechend anpassen. Zu beachten ist jedoch, daß das Konfigurationsverzeichnis eine Struktur haben muß, die der des Installationsverzeichnisses entspricht. Konkret heißt dies, daß sie dem dargestellten Baum entsprechen muß.
Das Verzeichnis bin enthält die Start- und Stopskripte für den Tomcat. Diese können aus der Originalinstallation übernommen werden.
Das Verzeichnis conf enthält alle für die Konfiguration des Servers notwendigen Dateien, hierzu kann zunächst das gesamte Verzeichnis aus der Originalinstallation übernommen werden. Die Kontextkonfigurationen nicht genutzter Anwendungen können bedenkenlos gelöscht und durch die der eigenen Webanwendungen ersetzt werden.
Ins Verzeichnis webapps werden schließlich alle Webanwendungen installiert, die mit dieser Konfiguration gestartet werden sollen.
Die anderen hier gezeigten Verzeichnisse common, server und shared sind optional und müssen nur dann angelegt und befüllt werden, wenn zusätzliche gemeinsam genutzte Bibliotheken benötigt werden. Später dazu mehr.
Nun werden als erstes die Start- und Stopskripte der Konfiguration angepaßt. Darin müssen die oben genannten Variablen entsprechend der lokalen Umgebung gesetzt werden. Hierzu werden folgende drei Zeilen direkt unter dem Kopfkommentar zu Beginn der Dateien eingegeben:
set JAVA_HOME=C:\Programme\Java\jdk1.5.0_11 set CATALINA_BASE=C:\Programme\catalina-base set CATALINA_HOME=C:\Programme\apache-tomcat-5.0.28
export JAVA_HOME=/usr/local/jdk1.5.0 export CATALINA_BASE=/home/catalina-base export CATALINA_HOME=/usr/local/jakarta-tomcat-5.0.28
Die Pfade geben die Installationsverzeichnisse von Java bzw. Tomcat sowie das Basisverzeichnis für die verwendete Konfiguration an. Sie müssen natürlich entsprechend angepaßt werden. Die gleichen drei Deklarationen werden ebenso in den Stopskripten shutdown.bat bzw. shutdown.sh eingetragen.
In manchen Fällen ist es notwendig, zusätzliche Bibliotheken beim Serverstart zur Verfügung zu stellen. Dies betrifft oft Datenbanktreiber, die der Server benötigt, um beispielsweise Authentifizierungsanfragen zu verarbeiten. Die Bibliotheken müssen hierzu in das Verzeichnis common/lib kopiert werden, damit sie beim Serverstart geladen werden. Auch solche zusätzlichen Bibliotheken können im Basisverzeichnis der Konfiguration abgelegt werden und müssen nicht in die eigentliche Installation kopiert werden. Damit der Server beim Hochfahren jedoch diese Bibliotheken lädt, muß die Datei catalina.properties aus dem conf-Verzeichnis der Konfiguration angepaßt werden. Für jeden Classloader gibt es dort eine Zeile mit Pfadangaben der zu ladenden Bibliotheken. Diese werden um entsprechende Einträge für das Basisverzeichnis erweitert:
common.loader= ... ,${catalina.base}/common/lib/*.jarDies erweitert den Common Classloader um alle Bibliotheken, die sich im angegebenen Verzeichnis der Konfiguration befinden. Gleiches kann für den Shared oder den Server Classloader angegeben werden.
Wird nun der Tomcat mit den angepaßten Skripten gestartet, so wird die unabhängige Konfiguration herangezogen.
Um sich auch diese Arbeit größtenteils noch zu ersparen, kann man sich diese Verzeichnisstruktur zusammen mit allen Änderungen als ZIP-Archiv sichern und immer dann als Grundlage heranziehen, wenn wieder einmal eine neue Konfiguration erstellt werden muß.
Letzte Kommentare