Tomcat-Server 4.0 pre-alpha installieren

JSP

Übersicht

Tomcat JSP-Server 3.1

Tomcat JSP-Server 3.2 final

Tomcat JSP-Server 4.0

Tomcat 4.0 Milestone 2

Tomcat und Apache-Server

Links

Tomcat 4.0

Bei der Version 4.0 des Tomcat Servers handelt es sich noch um eine Pre-Alpha-Version. Das heißt, man muß damit rechnen , daß hier noch einige Fehler und Unzulänglichkeiten enthalten sind.

Die zur Zeit (Anfang Oktober) aktuelle Version ist Milestone 1: (jakarta-tomcat-4.0-m1-src.tar.gz).
Mit dieser Version wurden einige Änderungen eingeführt, die im Abschnitt Milestone 1 aufgelistet sind.

Weiterhin ist die Installation noch nicht so komfortabel wie bei den Versionen 3.1 oder 3.2 durchzuführen.
Dies ist vor allem darauf zurückzuführen, daß die aktuellen daily-builds nicht alle zusätzlich notwendigen Java-Pakete enthalten. Diese sind vor der Installation zu besorgen und ebenfalls zu installieren. Um auf diese Pakete zugreifen zu können, sind außerdem einige Umgebungsvariablen zu setzen.

Die aktuelle Version läuft trotz des frühen Entwicklungsstadiums bereits sehr stabil.

Version 4.0 integriert gegenüber 3.2 folgende zusätzlichen Features:
Sie unterstützt

  • die JavaServer Pages (JSP) Spezification Version 1.2
  • sowie die Servlet API Spezification, Version 2.3
  • WebDAV Level 2
  • erweiterte Authentifizierungs-Funktionalität, z.B. Auslesen von Zertifikaten

Im Folgenden wird die Installation der aktuellen Version von Tomcat 4.0 als Stand-alone-Variante beschrieben.

Diese Version benötigt im Gegensatz zu den Versionen 3.1 oder 3.2 einige zusätzliche Pakete, die von den Sun- bzw. Apache-Seiten zu beziehen sind.

Die Beschreibung wendet sich an den erfahrenen Anwender. Ausführlichere Anleitungen existieren für die Versionen 3.1 und 3.2 beta 4.

Voraussetzungen

Benötigte Archive:
Paketname Beschreibung URL
Tomcat

Die Source-Dateien des Tomcat-JSP-Servers, zusammengefaßt im Archiv jakarta-tomcat-4.0-src-2000XXXX.tar.gz, wobei XXXX das Datum der Source-Distribution bezeichnet.

jakarta.apache.org
Ant Das Archiv jakarta-ant.tar.gz enthält ein Make-Tool, das zum Compilieren des Tomcat-Servers sowie zusätzlicher Komponenten des Servers benötigt wird.
jakarta.apache.org
Regexp jakarta-regexp-1.1.tar.gz: Java-Paket zum Auswerten regulärer Ausdrücke.
jakarta.apache.org/regexp/dist/
Servlet-API 4.0 jakarta-servletapi-4.0-src-20000909.tar.gz, eine Implementierung der Servlet-API in der Version 2.3.
jakarta.apache.org
JAXP jaxp-1_0_1.zip, Java(TM) API for XML Parsing von Sun.
java.sun.com/xml
JNDI jndi1_2_1.zip, das Java Naming and Directory Interface (tm) in der zur Zeit aktuellen Version 1.2.
java.sun.com
JSSE jsse-1_0_2-gl.zip, die Java(tm) Secure Socket Extension von Sun.
java.sun.com
Xerces * Xerces-J-tools.1.2.0.tar.gz *, die Xerces-XML-Bibliotheken, implementiert in Java.
xml.apache.org
* Xerces wird von der Milestone-1-Release anstelle der JAXP verwendet.
Optionale Archive:
Tools
Taglibs
Struts

Installation vorbereiten

Alle oben aufgeführten Archive außer den optionalen müssen vor dem Compilieren des Tomcat-Servers bereits installiert sein.

Im folgenden wird davon ausgegangen, daß diese Archive unterhalb des Basis-Verzeichnisses

/opt/server
installiert wurden.

Zur Installation des Servers selbst werden noch die Archive jakarta-tomcat-4.0-src-2000XXXX.tar.gz sowie jakarta-ant.tar.gz benötigt:
Archive kopieren: cp jakarta-tomcat-4.0-src-2000XXXX.tar.gz /opt/server
cp jakarta-ant.tar.gz /opt/server
Beide Archive müssen in diesem Verzeichnis entpackt werden:
Archive entpacken: tar xzf jakarta-ant.tar.gz
tar xzf jakarta-tomcat-4.0-src-2000XXXX.tar.gz

 ANT übersetzen

Der folgende Schritt besteht darin, das Make-Tool Ant zu compilieren. Dazu muß in das Verzeichnis jakarta-ant gewechselt werden, das beim Entpacken des Archivs jakarta-ant.tar.gz entstand:
  cd jakarta-ant
Zum Übersetzen des Tools sind folgende Voraussetzungen notwendig:
Java-JDK

Ein installiertes Java-JDK muß vorhanden sein, da es sich bei diesem Tool um ein reines Java-Programm handelt, das auch mit einem Java-Compiler übersetzt werden muß.

Eine Liste aktueller JDKs findet sich hier.

CLASSPATH

Die CLASSPATH-Umgebungsvariable enthält eine Liste von Pfaden zu Java-Klassen.

Zum Übersetzen von Ant wird die Sun-Javac-Compiler-Klasse sun/tools/javac/Main benötigt. Diese befindet sich im Archiv tools.jar. Das Archiv muss somit in die CLASSPATH-Umgebungsvariable aufgenommen werden, Dies geschieht beispielsweise über folgende Anweisung:

export CLASSPATH=/opt/jdk1.2.2/lib/tools.jar
Das Verzeichnis, in dem die Sourcen für Ant liegen, muß nicht aufgenommen werden, dies geschieht später automatisch.

JAVA_HOME Die JAVA_HOME-Umgebungsvariable muß gesetzt sein.
Zum Compilieren von Ant ist hier der Pfad zum JDK-Basisverzeichnis aufzunehmen. In einer bash-Shell unter Linux kann diese Variable über folgende Anweisung gesetzt werden. Es wird angenommen, daß das JDK im Verzichnis /opt/jdk1.2.2 installiert wurde:
export JAVA_HOME=/opt/jdk1.2.2
XML-Parser

Zum Übersetzen von Ant wird ein JAXP-konformer XML-Parser benötigt. Der Pfad zu den entsprechenden .jar-Archiven kann in den CLASSPATH aufgenommen werden.

Zum Beispiel:

export CLASSPATH=$CLASSPATH:/opt/jaxp1.0.1/jaxp.jar:\ /opt/jaxp1.0.1/parser.jar

Übersetzen Der Übersetzungsvorgang wird aus dem jakarta-ant-Verzeichnis durch Aufruf des folgenden Shell-Skripte durchgeführt:
./build.sh

 Umgebungsvariablen setzen

Oben wurde bereits erwähnt, daß zum Übersetzen von Tomcat 4.0 einige Zusatzpakete zu installieren sind. Um diese Pakete finden zu können, benötigt das build-Skript folgende Umgebungsvariablen.

Es handelt sich dabei um folgende Werte:

Paket Umgebungsvariable Wert
SDK JAVA_HOME Basisverzeichnis der SDK-Installation.
Ant ANT_HOME Basisverzeichnis des Ant-Make-Tools.
JAXP JAXP_HOME Verzeichnis, in welchem die Java API for XML Parsing installiert ist.
JSSE JSSE_HOME Installationsverzeichnis der Java Secure Socket Extension API.
Regexp REGEXP_HOME Verzeichnis des Regular Expressions-Pakets, das ebenfalls von der Apache-Site zu beziehen ist.
Servlet API 2.3 SERVLETAPI_HOME Installationsverzeichnis der Servlet-API. Für Tomcat 4.0 wird die Version 2.3 der Servlet-API benötigt, die bisher verwendete Version 2.2 genügt nicht mehr!
Xerces * XERCES_HOME Installationsverzeichnis der .jar-Archive der Xerces-API. Diese befinden sich im Unterverzeichnis tools der Xerces-Installation.
* Xerces wird von der Milestone-1-Release anstelle von JAXP verwendet.

 CLASSPATH-Umgebungsvariable setzen

Einige .jar-Archive der verwendeten Pakete müssen in den CLASSPATH aufgenommen werden:

Paket Archiv
Servlet API 2.3 servlet.jar
JAXP jaxp.jar
parser.jar
Regexp jakarta-regexp-1.1.jar
JNDI jndi.jar
Hinweis:

Für die Milestone-1-Version von Tomcat 4.0 ist es nicht mehr notwendig, die Archive in den CLASSPATH aufzunehmen. Dieser wird vom Skript build.sh automatisch generiert.

Tomcat 4.0 übersetzen

Die Vorbereitungen zum Compilieren des JSP-Servers sind damit abgeschlossen.
Zum Starten des Compiler-Laufs muß nun in das Verzeichnis jakarta-tomcat gewechselt werden:
In das Tomcat Source Verzeichnis wechseln cd ../jakarta-tomcat
In diesem Verzeichnis muß nur noch das Skript build.sh ausgeführt werden:
Tomcat 4.0 compilieren ./build.sh
Achtung! Wenn das Compilieren fehlschlägt, kann es beim anschließenden Neu-Compilieren zu Fehlermeldung kommen, die evtl. vermieden werden, wenn zuvor alle bisher erzeugten Dateien gelöscht werden. Diese befinden sich im Verzeichnis build/tomcat Dies ist die Standard-Einstellung für alle Versionen des Tomcat-Servers. Ist bereits ein Tomcat-Server installiert, wird diese Installation überschrieben. Aus diesem Grund kann es sinnvoll sein, ein neues Zeilverzeichnis für die neue Installation festzulegen.
Zielverzeichnis ändern

Standardmäßig werden die Dateien des Tomcat-Servers in das Verzeichnis build/tomcat kopiert. Sollen mehrere Versionen des Servers übersetzt werden, kann jedem ein eigenes Verzeichnis zugewiesen werden. Zu diesem Zweck muß vor dem Ausführen des Skripts build.sh die Datei build.xml entsprechend angepaßt werden.

In ihr enthalten ist ein Element namens target, das wiederum mehrere property-Elemente enthält. Das property-Element tomcat.build enthält als value-Parameter das (relative) Verzeichnis, in das der Tomcat-Server installiert werden soll. In der Originaldatei ist hier immer das Verzeichnis ../build/tomcat angegeben.

Im folgenden Beispiel wurde das Zielverzeichnis in ../build/tomcat40 geändert.

<target name="init">
<!-- Ant.home is set automatically by ant. If you set it here it will not work -->
<property name="ant.home" value="../jakarta-ant" />
<property name="build.compiler" value="classic"/>
<property name="servlet.jar"
value="../jakarta-servletapi/lib/servlet.jar"/>
<property name="tomcat.build" value="../build/tomcat40"/>
<property name="tomcat.home" value="../dist/tomcat"/>
<property name="j2ee.home" value="../../j2ee/build/unix"/>
<property name="optimize" value="true" />
<property name="jaxp" value="../jaxp1.0.1" />
</target>
Während des Compiler-Laufs wird, falls noch nicht vorhanden, das Verzeichnis build auf der gleichen Ebene wie die Installationsverzeichnisse jakarta-ant und jakarta-tomcat erstellt. Darin enthalten ist das Verzeichnis tomcat bzw. das in build.xml eingetragene Zielverzeichnis, in das die Klassen- und Konfigurations-Dateien sowie Start-Skripte des Tomcat-Server kopiert werden.

Tomcat 4.0 starten

Zum Starten des Servers wird in das bin-Verzeichnis der Tomcat-Installation gewechselt:
In das Tomcat Verzeichnis wechseln
cd ../build/tomcat32b4/bin/

bzw.
cd ../build/tomcat/bin/
wenn das Default-Verzeichnis unverändert beibehalten wurde.
Der Tomcat-Server ist fertig compiliert und enthält bereits eine Standard-Konfiguration. Somit kann der Server nun versuchsweise gestartet und mit Hilfe der mitgelieferten Beispiele getestet werden.

Der Tomcat-Server benötigt zur Ausführung die JAXP-API oder eine dazu kompatible API.

Die Klassen bzw. Archive können dem Server auf folgende Arten bekanntgemacht werden:

  • Die .jar-Archive können in das Verzeichnis lib des Servers kopiert werden.
  • Es können in diesem Verzeichnis symbolische Links auf die Archive erzeugt werden.
  • Die notwendigen Archive können in den CLASSPATH aufgenommen werden.
Tomcat starten ./startup.sh
Während des Startvorgangs werden die Einstellungen für den CLASSPATH und LOG-Files gelistet, wie sie vom Server verwendet werden. Eventuelle Fehler können hier leicht lokalisiert werden. Normalerweise sollte der Server jedoch mit den Default-Einstellungen bereits problemlos starten.
Die Funktion kann getestet werden, indem die Startseite des Servers mit Hilfe eines beliebigen Web-Browsers aufgerufen wird:

Testlauf

Tomcat testen Im Browser kann die Tomcat-Start-Seite über die Adresse http://localhost:8080 aufgerufen werden.
Abbildung der Startseite des Tomcat-Servers.
Wird diese Startseite in dieser Form angezeigt, war die Installation des Servers erfolgreich. Der Server empfängt Anfragen über den Default-Port 8080 und überträgt auch Daten zurück zum Client.
Als nächstes bleibt noch zu prüfen, ob JSP-Seiten compiliert und angezeigt werden können. Da hierzu Zugriffe auf den Java-Compiler notwendig sind, besteht hier noch eine potentielle Fehlerquelle.
Der Test ist am einfachsten durchzuführen, indem einige der JSP-Beispiele des Servers aufgerufen werden. Die Beispiel-Seite kann über den Link JSP Examples erreicht werden, siehe dazu die Abbildung der Startseite.
JSP Beispiel Seite anzeigen Die Beispielseite kann über den entsprechenden Link oder die Adresse
http://localhost:8080/examples/jsp
erreicht werden.
Im Browser sollte nun eine Index-Seite mit den JSP-Beispielen des Tomcat-Servers zu sehen sein.
JSP Beispiel ausführen Ein beliebiges Beispiel aus der Liste kann zum Testen verwendet werden. Das Snoop-Beispiel liefert einige Angaben über die Übertragungsmethode und das Betriebssystem.

Änderungen in der Milestone-1 Version

Die Apache-Gruppe hat mit dem Milestone-1-Release des Tomcat-4.0-Servers einige Änderungen gegenüber älteren Versionen eingeführt:
XML-Bibliothek

Anstelle der JAXP-XML-Bibliothek von Sun wird jetzt die eigene Bibliothek Xerces verwendet.

Es muß die aktuelle Xerces Version 1.2 eingesetzt werden. Ein Versuch mit Version 1.1 schlägt fehl.

Wird nicht die verlangte Version eingesetzt, erscheint eine Fehlermeldung, die sich über eine non JAXP compliant XML-Bibliothek beklagt.

Diese Fehlermeldung ist äußerst mißverständlich und irreführend. Selbstverständlich ist Xerces alles andere als JAXP-kompatibel. Vermutlich stammt der Text der Meldung noch aus einer älteren Tomcat-Version.

XERCES_HOME

Mit der Einführung der neuen XML-Bibliothek wurde auch die zugehörige Umgebungsvariable geändert.

Anstelle von JAXP_HOME muß jetzt XERCES_HOME gesetzt werden. Hier muß das Verzeichnis eingetragen werden, in dem sich die .jar-Archive von Xerces befinden.

  Dies ist in der aktuellen Version nicht das Basis-Verzeichnis der Installation!
Vielmehr muß das Unterverzeichnis tools angegeben werden.
 

Zum Beispiel:

export XERCES_HOME=/opt/xerces-1_2_0/tools

Ant

Das Paket Ant muß jetzt innerhalb des Tomcat-Verzeichnisses installiert werden. Das ist umso verwirrender, da Ant auch von anderen Paketen verwendet wird. Für diese muß Ant also zusätzlich im gleichen Verzeichnis wie bisher installiert werden.

Es bietet sich also an, Ant dort zu lassen, wo es war und nur einen symbolischen Link innerhalb des Tomcat-Verzeichnisses anzulegen:

cd jakarta-tomcat-4.0-m1-src/
ln -s ../jakarta-ant .

Ronald Pfeiffer
Last modified: Sun Oct 29 22:22:40 CET 2000