Installation von Tomcat-4 und Cocoon2 unter Windows 2000


Inhaltsverzeichnis

1 Quellen
2 Installation des Java Development Kit, Version 1.3.1
Windows 2000
Linux
3 Installation von Tomcat 4
Windows
Linux
Windows: Tomcat starten
Linux: Tomcat starten
4 Installation von Cocoon 2
5 XML-Produktionsumgebung unter Win2000
Starten von Tomcat und Cocoon
Erste Schritte mit XML
Erste Schritte mit Cocoon2
Cocoon 2 und DocBook
Abwärtskompatibiltät mit Cocoon-1.x
6 Schlussbemerkung

Tomcat-4 und Cocoon2 sind die jeweils neuesten und derzeit noch Beta-Versionen. Aber ich konnte im Betrieb zunächst keine größeren Unregelmäßigkeiten feststellen.

Inzwischen sind die Installationsprozeduren für Windows und Linux annährend gleich - dank Java.

Kapitel 1. Quellen

Kapitel 2. Installation des Java Development Kit, Version 1.3.1

Inhaltsverzeichnis

Windows 2000
Linux

Windows 2000

Im Verzeichnis, in das man sich das Java Development Kit von obiger Adresse heruntergeladen hat, findet sich eine 32 MB große Datei mit Namen: jsdk-1_3_1_01-win
Doppelcklick startet die automatische Extraktion und anschließend den Installations-Assistenten. Einfach den Anweisungen folgen.

Nach erfolgter Installation muss JAVA_HOME als Umgebungsvariable eingetragen werden:

  • Start - Einstellungen - Systemsteuerung - System - erweitet-Umgebungsvariablen aufsuchen
  • Öffnen, es erscheint die Eingabemaske: Umgebungsvariablen
  • Mit Button: Systemvariablen/Neu... die Eingabemaske für Systemvariable öffnen
  • Im Feld: Name der Variablen JAVA_HOME,
    und im Feld: Wert der Variablen C:\Pfad\zu\jdk1.3.1 (Beispiel: C:\Programme\jdk1.3.1)
    eintragen
  • Alle Masken mit Button: OK schließen

Linux

  • Heruntergelade Datei entpacken mit:
    tar xvfI j2sdk-1.3.1-FCS-linux-i386.tar.bz2
  • In der Datei: /etc/profile.local (SuSE Linux) folgende Eintragungen machen:
    • Pfad zu Java: PATH=$PATH:/usr/lib/jdk1.3.1/bin
    • Umgebungsvariable: $JAVA_HOME: JAVA_HOME=/usr/lib/jdk1.3.1
    • Exportieren: export PATH, JAVA_HOME
  • Umgebungsvariablen gültig machen mit:
    source /etc/profile.local (nur im laufenden Terminal)
    Ausloggen und wieder Einloggen
    Rebooten

Kapitel 3. Installation von Tomcat 4

Windows

  • Im Explorer den Ordner aufsuchen, wo die heruntergeladene .exe-Datei gespeichert wurde, und das Setup-Symbol (PC mit CD) durch Doppelclick starten
  • Den Anweisungen des Assistenten folgen.
  • Nach Abschluss des Installationsprogrammes öffnet sich der Explorer-Ordner von Tomcat. Darin finden sich zwei Icons: Tomstart und Tomstop. Für manuellen Start und Stop kann man sich die per Rechtsklick - Senden an - Desktop (Verknüpfung erstellen) auf den Desktop legen.

Als im Installationsassistenten nach dem Installationspfad gefragt wurde habe ich
D:\Programme\Tomcat4 angegeben. So wird im Folgenden der Fundort von Tomcat genannt. Dies ist aber nur als Beispiel zu verstehen.

Linux

Die Installation folgt dem üblichen Procedere:

Heruntergeladene Source nach /usr/local kopieren, auspacken mit:
tar -xzf jakarta-tomcat-4.0.1.tar.gz
Es entsteht das Verzeichnis: /usr/local/jakarta-tomcat-4.0.1 und wird der Einfachheit halber umbenannt in:
/usr/local/tomcat4

Windows: Tomcat starten

Start und Stop können manuell über die Icons auf dem Bildschirm erfolgen, oder in:
D:\Programme\tomcat4\bin mit startup

Letzteres kann man auch als Task anlegen (Start - Einstellungen -Systemsteuerung - geplante Tasks ), so dass Tomcat automatisch beim Booten mit startet.

shutdown beendet den Server.

Linux: Tomcat starten

Im Verzeichnis: /usr/local/tomcat4/bin
Wird das Kommando ausgeführt: startup.sh

Um Tomcat4 von überall starten und stoppen zu können, habe ich zwei kleine Skript geschrieben und nach /usr/local/bin gestellt:
tom4start

				
#! /bin/sh

/usr/local/tomcat4/bin/startup.sh	&> /usr/local/tomcat4/logs/tom4start.log
				
				
tom4stop
				
#! /bin/sh

/usr/local/tomcat4/bin/shutdown.sh	&> /usr/local/tomcat4/logs/tom4stop.log
				
				

Angehalten wird der Server mit shutdown, bzw. tom4stop.
Weil man unter Linux sowieso immer eine Konsole offen hat, habe ich mir nicht die Mühe gemacht, Tomcat 4 automatisch starten zu lassen.

Kapitel 4. Installation von Cocoon 2

Cocoon2 liegt als Java-Source vor. Es muss compiliert und zu einem .war-Archiv zusammengestellt werden. Das Vorgehen hierbei ist vom Betriebssystem weitgehend unabhängig.

  • Windows: Das heruntergeladene .zip-Archiv: Cocoon-2.0rc2.zip mit Powerarchiver in ein neues Verzeichnis: D:\Programme\Cocoon2 entpacken.
  • Linux: Das heruntergeladene .tar.gz-Archiv: Cocoon-2.0rc2.tar-gz
    in: /usr/local entpacken mit: tar -xzf Cocoon-2.0rc2.tar-gz.
    Das entstehende Verzeichnis: Cocoon2-2.0rc wird der Einfachheit halber umbenannt in cocoon2
  • Es findet sich ein INSTALL mit den entsprechenden Anweisungen.
    Tomcat ist installiert und die Umgebungsvariable: JAVA_HOME gesetzt.
  • Windows:
    • Mit Start - Auführen - cmd ein Terminal-Fenster aufmachen.
    • Mit: D: (return) cd Programme\cocoon2 in den Ordner mit Cocoon2 wechseln.
    • Auf der Kommandozeile den Befehl ausführen:
      .\build.bat -Dinclude.webapp.libs=yes -Dinstall.war=D:\Programme\Tomcat4\webapps webapp
    • In Ruhe 1 Tasse Kaffee trinken.
    • Das .war-Archiv ist entstanden in:
      D:\Programme\cocoon2\build\cocoon\cocoon.war
    • cocoon.war kopieren nach:
      D:\Programme\Tomcat4\webapps
      So lautet jedenfalls die Anweisung. Ich habe kein cocoon.war entdecken können, stattdessen aber einen cocoon.zip und einen cocoon.jar Ich versuche es einfach mal mit cocoon.zip
  • Linux:
    • cd /usr/local/cocoon2
    • ./build.sh -Dinclude.webapp.libs=yes -Dinstall.war=/usr/local/tomcat4/webapps webapp
    • In Ruhe 1 Tasse Kaffee trinken.
    • Das .war-Archiv ist entstanden in:
      /usr/local/cocoon2/build/cocoon/cocoon.war
    • cocoon.war kopieren nach:
      /usr/local/tomcat4/webapps
  • Beim nächsten Start von Tomcat wird Cocoon2 automatisch installiert. Also: Server anhalten mit shutdown, wenn er lief, und wieder starten mit startup
  • http://127.0.0.1:8080/cocoon/hello.html im Browser sollte eine Seite des Inhalts:
    “Hello This is my first Cocoon 2 page”
    auf den Schirm bringen. Das ist schon von Cocoon aus XML generiert und damit ist die Installation erfolgreich abgeschlossen.

Kapitel 5. XML-Produktionsumgebung unter Win2000

Starten von Tomcat und Cocoon

Zunächst Tomcat starten im Terminalfenster mit: startup (s.o); die Zeile:
2001-10-10 16:41:33 - ContextManager: Adding context Ctx ( /cocoon ) im Startprotokoll von Tomcat zeigt, dass das Cocoon-Verzeichnis eingebunden worden ist.

Die URL: http://localhost:8080/cocoon bringt die Startseite von Cocoon

Das sagt aber noch nichts darüber aus, ob XML verarbeitet wird! Darüber bringt erst die Aktivierung des Links: Live Samples auf der Startseite von Cocoon Klarheit: Nach dem Anklicken vergeht einige Zeit (Java und Cocoon sind nicht die Allerschnellsten), danach erscheint die Seite mit den Beispielen.

Erste Schritte mit XML

Die Verknüpfung von XML-Source mit XSL-Stylesheet funktioniert bei Cocoon2 ganz anders als bei seinem Vorläufer. Wie, das soll an einem kleinen Beispiel demonstriert werden.

Unter Windows sollte man sich vorhert einen vernünftigen Editor wie UltraEdit beschaffen. Der ist zwar nur Shareware, aber 45 Tage sind frei, das langt erst einmal.

  • Herunterladen von: http://www.ultraedit.com/downloads/index.html. Es gibt eine deutschsprachige Version.
  • Die heruntergeladene Datei: uedit32gi doppelklicken
  • Machen, wozu der Assistent einen auffordert
  • Mit: Start - Programme - Ultraedit - Ultraedit32 - Rechtsklick - senden an - Desktop (Verknüpfung erstellen) Uedit auf den Desktop legen

In Linux gibt es bekanntermaßen Editoren zuhauf. Ich bevorzuge Nedit.

Erste Schritte mit Cocoon2

Zunächst muss herausgefunden werden, wie denn XML und XSL zueinander finden.
Zentraler Ort dafür ist ../cocoon/sitemap.xmap. Dort findet sich die Passage:

  <map:match pattern="hello.html">
    <map:generate src="docs/samples/hello-page.html"/>
    <map:transform src="stylesheets/page/simple-page2html.xsl"/>
    <map:serialize type="html"/>
   </map:match>
Hier wird die Datei: ../cocoon/docs/samples/hello-page.xml
Mit dem Stylesheet: ../cocoon/stylesheets/page/simple-page2html.xsl zu HTML geparst und dann an den: http://localhost:8080/cocoon/hello.html anfragenden Browser ausgeliefert.

So weit, so gut. Aber können wir das auch? Ich kopiere in sitemap.xmap den hello.html-Block von oben direkt dadrunter und =E4ndere ihn ein wenig ab:

						<map:match pattern="hello2.html">
							<map:generate src="docs/samples/hello2-page.html"/>
							<map:transform src="stylesheets/page/simple-page2html.xsl"/>
							<map:serialize type="html"/>
						</map:match>
						
und rufe das im Browser auf mit: http://localhost:8080/cocoon/hello2.html

Und siehe da: Mir wird anstandslos der Text aus dem leicht geänderten hello2-page.xml zurückgeliefert!

Cocoon 2 und DocBook

Der tägliche Umgang mit DocBook würde schon eine schnellere Parsung von XML nach HTML lohnen. Also soll hier dargestellt werden, wie man das in Cocoon 2 einbindet.

Docbook installieren:

  • Stylesheet: http://sourceforge.net/projects/docbook/
    unter Windows nach: D:\Programme\Tomcat4\webapps\cocoon\stylesheets\docbook-xsl
    unter Linux nach: /usr/local/tomcat4/webapps/cocoon/stylesheets/docbook-xsl
  • DTD: http://www.oasis-open.org/docbook/xml/4.1.2/
    unter Windows nach: D:\Programme\Tomcat4\webapps\cocoon\dtd\docbook
    unter Linux nach: /usr/local/tomcat4/webapps/cocoon/dtd/docbook
  • Bemerkung: Die DTD wird dann benötigt, wenn ein XML-Editor eingesetzt wird, der ohne nicht arbeiten kann, oder der einem die möglichen Elements, Entities und Attributs anzeigt.

Unter: http://exist..sourceforge.net/userguide/ch01s06.html
findet sich eine kurze Anleitung zur Vereinigung von XML und xsl unter Cocoon 2 in der sitemap.xmap:

<map:match pattern="shakespeare/**.html">
   <map:generate src="http://localhost:8088/shakespeare/{1}.html"/>
   <map:transform src="shakes.xsl"/>
   <map:serialize type="html"/>
</map:match>
					

sitemap.xmap

Windows: D:\Programme\Tomcat4\webapps\cocoon\sitemap.xmap
Linux: /usr/local/tomcat4/webapps/cocoon/sitemap.xmap

Hier handelt es sich um die zentrale Konfigurationsdatei für die XML-Webseiten. Darin wird unter: Hello.html die Passage eingesetzt:


   <!-- ================  DocBook  =========================== -->

   <map:match pattern="docbook/**.html">
    <map:generate src="docbook/{1}.html"/>
    <map:transform src="stylesheets/docbook-xsl/html/docbook.xsl"/>
    <map:serialize type="html"/>
   </map:match>

   <map:match pattern="docbook/**.html">
    <map:generate src="docbook/{1}.html"/>
    <map:transform src="stylesheets/docbook-xsl/html/docbook.xsl"/>
    <map:serialize type="html"/>
   </map:match>
	 
   <map:match pattern="docbook/**.jpg">
    <map:read src="docbook/{1}.jpg" mime-type="image/jpg"/>
   </map:match>
	  
   <map:match pattern="docbook/**.gif">
    <map:read src="docbook/{1}.gif" mime-type="image/gif"/>
   </map:match>
	 
	   <map:match pattern="docbook/**.png">
    <map:read src="docbook/{1}.png" mime-type="image/png"/>
   </map:match>
	 
						
Es bewirkt, dass alle Dateien innerhalb des Verzeichnisbaumes docbook mit dem DocBook-Stylesheet geparst werden, es sei denn, für ein Unterverzeichnis ist ein eigenens Stylesheet angegeben.

Diese Passage sorgt dafür, dass Dateien sowohl als .xml als auch .html aufgerufen werden können
Außerdem sorgt es für die richtige Einbindung der Grafikformate .jpg, .gif und .png

DocBook-Testfile

Ein kleiner Test:
TOMCAT_HOME\webapps\cocoon\docbook\docbook1.xml

						
<?xml version="1.0" encoding="ISO-8859-1"?>
						
<article>	
	<title>Mein erstes DocBook</title>
	<para>
	 	Nur ein kleiner Test...
	</para>
</article>
						
					

Dieser File dient als Test für den Eintrag in sitemap.xmap
Er wird aufgerufen mit:
http://osk018:8080/cocoon/docbook/docbook1.html

Unterordner

Um Dateien aus Unterordnern von cocoon/docbook/ aufzurufen, folgt man der Syntax: (pfadname)/(xml-datei).html, also beispielsweise:
http://osk018:8080/cocoon/docbook/ordner2/docbook2.html

Abwärtskompatibiltät mit Cocoon-1.x

Cocoon2 ist insoweit abwärtskompatibel, als es keine Rolle spielt, ob die alten xml-Header mit in den Dateien stehen:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by Andreas Popper (ohltec AG) -->
<?xml-stylesheet href="../../xsl/docbook-xsl-1.41/html/docbook.xsl" type="text/xsl"?>
<?cocoon-process type="xslt"?>
					
Jetzt genügt ja ein einfaches:
<?xml version="1.0" ?>
					,
und in der gesamten Ordnerstruktur unterhalb des Ordners, für den in sitemap.xmap das Stylesheet: docbook.xsl eingetragen ist, werden die mit .html-Endung aufgerufenen .xml-Dateien nach HTML geparst und an den Browser ausgeliefert. Das ist schon eine deutliche Erleichterung gegen Cocoon1.x, wo jede .xml-Datei im Header einen eigenen Hinweis auf das zu verwendende Stylesheet brauchte!

Kapitel 6. Schlussbemerkung

Wenn alles gut gegangen ist, sollte jetzt eine XML-Produktionsumgebung zur Verfügung stehen. Weiteren Schritten in dieser Richtung steht nun nichts mehr im Wege!

Der Geschwindigkeitsgewinn ist übrigens nicht unerheblich: Für eine relativ große Datei, für die das DocBook-Stylesheet aufgerufen werden muss (was am meisten Zeit kostet!), brauchen Tomcat-4 Cocoon2 auf einem Pentium 450 fünf Sekunden .
Die gleiche Datei mit dem gleichen Stylesheet brauchte mit Tomcat-3-2-3 und Cocon-1.8.2 auf einem Dual Pentium 850 sieben Sekunden!

Happy Coding!