HowTo: Install Tomcat, Cocoon, Exist with and without Eclipse

Transcription

HowTo: Install Tomcat, Cocoon, Exist with and without Eclipse
HowTos
für
Installation von Tomcat, Cocoon und eXist
ohne und mit Eclipse
mit Bitte um Kommentare und Korrekturen
von Peter Strassnig Bakk. techn.
Technische Universität Graz
letztes Update: 8. Februar 2006
Inhaltsverzeichnis
1
Verwendete Software und Versionen
2
2
Tomcat, Cocoon und Exist ohne Eclipse
3
2.1
Installation von Apache Tomcat . . . . . . . . . . . . . . . . .
3
2.2
Installation von Apache Cocoon . . . . . . . . . . . . . . . . .
3
2.3
Installation von eXist . . . . . . . . . . . . . . . . . . . . . . .
4
2.4
Integration von eXist in Apache Cocoon . . . . . . . . . . . .
4
3
Tomcat, Cocoon und Exist in Eclipse 3.1
8
3.1
Installation von Apache Tomcat in Eclipse . . . . . . . . . . .
8
3.2
Cocoon 2.1.7 in Eclipse 3.1 laden . . . . . . . . . . . . . . . .
9
3.3
Erstellen von Cocoon mit Ant von Eclipse: . . . . . . . . . . . 10
3.4
Integration von eXist in Apache Cocoon . . . . . . . . . . . . 11
1
1
Verwendete Software und Versionen
Für die Entwicklung des Systems wird die aktuelle Version des jeweiligen
Softwareproduktes mit Stand 1. Juli 2005 verwendet. Konkret wären dies:
• Apache Cocoon in der Version 2.1.7
• eXist XML-Datenbank in der Version 1.0-beta2
• Tomcat als Servletcontainer in der Version 5.5.9
• Java 2 SDK in der Version 1.4.2
• Adobe Acrobat Professional Version 7.0
• Adobe Acrobat SDK Version 5.0 Release 4
• Eclipse 3.1.1 inkl. deutschem Sprachpacket.
2
2
Tomcat, Cocoon und Exist ohne Eclipse
2.1
Installation von Apache Tomcat
1. Nach dem Download des Tomcat ([Apache Tomcat, 2005]) Windows
Installers wird dieser Ausgeführt und unterstützt den Benutzer bei der
Installation. Tomcat in der verwendeten Version benötigt normalerweise Java ab der Version 1.5. Da Cocoon, speziell der XML-Parser Xerxes,
nicht mit dieser Version läuft ist es Notwendig für Tomcat einen Patch
einzuspielen. Dieser ist ebenfalls auf der Tomcat Homepage zu nden.
Dieser Patch ist unter 'JDK 1.4 Compatability Package' auf der Tomcat
HP zu nden.
Konkret müssen folgende Files eingespielt werden:
In den Ordner TOMCAT-HOME/bin/
• jmx.jar
und in den Ordner TOMCAT-HOME/common/endorsed/
• xerxesImpl.jar
• xml-apis.jar
2. Nach dem einspielen der genannten Dateien läuft Tomcat einwandfrei
und kann unter der Adresse localhost:8080 aus einem Browser heraus
erreicht werden!
2.2
Installation von Apache Cocoon
Für die Installation von Cocoon reicht es das Verzeichnis cocoon/build/webapp
in den webapps Ordner von Tomcat zu copieren und danach in cocoon umzubenennen. Cocoon muss nach dem Download mittles build.bat / .sh compiliert werden um einen webapp Ordner zu erhalten.
Eine zweite Möglichkeit besteht darin cocoon mit dem Befehl build -war zu
compilieren und die Datei cocoon.war in den Ordner TOMCAT/webapps zu
kopieren. Beim nächsten Start von Tomcat wird die .war Datei automatisch
entpackt und im Tomcat/webapps Ordner unter dem entsprechenden Namen
zugänglich gemacht.
3
2.3
Installation von eXist
Von der Homepage von Exist [eXist, 2005] wird die aktuelle version als exist(version).jar File downgeloaded. Dies ist der Installer für Windows. Er versucht alle Pfade und Umgebungsvariablen richtig zu setzten.
Wichtig ist dass die Umgebungsvariable
EXIST_HOME
richtig gesetzt ist!
Da diese Installation später nach der Integration von Cocoon nicht mehr
benötigt wird, ist es von Vorteil eXist nicht direkt in ein Unterverzeichnis
von Tomcat zu installieren.
Zum Test der Datenbank kann die Datei
\..\Exist\bin\startup.bat
ausgeführt werden um den Exist Server zu starten. Danach kann die lokale
Startseite, die Dokumentation und die Beispiele über http://localhost:8080/exist
erreicht werden!
2.4
Integration von eXist in Apache Cocoon
Folgende Schritte sind auszuführen um die XML-Datenbank in die Cocoon
Umgebung zu integrieren um einen Zugri über die XMLDB API zu ermöglichen. [Wiki.exist-db.org, 2005]
Hier wird davon ausgegangen dass Cocoon in der angegebenen Version im
Servletcontainer Tomcat läuft und über die Umgebungsvariable CATALINAHOME/webapps/cocoon erreicht werden kann. Weiters muss eXist installiert
sein und über EXIST-HOME/ erreichbar sein.
1. Aus dem Verzeichnis EXIST-HOME/lib/core sind folgende Dateien in
das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• commons-pool-1.1.jar
• xmlrpc-1.2-patched.jar
• xmldb.jar
4
Da eXist die aktuellen Versionen der XMLDB API benötigt müssen
folgende älteren Files aus dem Verzeichnis /cocoon/WEB-INF/lib gelöscht werden.
• xmlrpc-1.1.jar
• xmldb-api-20030701.jar
• xmldb-common-20030701.jar
• xmldb-xupdate-20040205.jar
Aus dem Verzeichnis EXIST-HOME/lib/optional sind folgende Dateien
in das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• castor-0.9.5.jar
Anmerkung : bei Verwendung von eXist-1.0b2-build-1107 muss die
datei seperat heruntergeladen werden (zb.: http://dist.codehaus.org/castor
/0.9.5/castor-0.9.5.jar).
• commons-leupload-1.0.jar
• isorelax.jar
• xsdlib.jar
• msv.jar
Anmerkung : isorelax.jar, xsdlib.jar und msv.jar waren nicht vorhanden, folgender Workaround hat geholfen: von http://www.relaxer.org
/download/relaxer-1.0.zip wurde der Relaxer heruntergeladen, in
dem Archive benden sich isorelax.jar, xsdlib.jar und msv.jar
• jgroups-all.jar (Diese Datei ist bei der Standardauslieferung von
Exist nicht standardmäÿig enthalten. Sie kann bei [cvs.sourceforge.net, 2005]
downgeloaded werden! Es kann sein dass sie nicht im lib/optional,
sondern im lib/core Verzeichnis zu nden ist)
Aus dem Verzeichnis EXIST-HOME sind folgende Dateien in das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• exist.jar
• exist-optional.jar
2. Als nächstes muss die Kongurationsdatei für Exist (EXIST-HOME/webapp/WEBINF/conf.xml) in das Verzeichnis ../cocoon/WEB-INF/ kopieren.
5
3. Editieren der web.xml Datei im Verzeichnis /cocoon/WEB-INF/
Für den Zugri auf eXist über xml-rpc, web-dav, SOAP oder XMLDB
müssen einige Servlets deniert werden, zumindest muss das eXist Servlet deniert werden!
Das EXIST-Servlet muÿ vor dem Cocoon-Servlet deniert werden.
<servlet>
<servlet-name>EXistServlet</servlet-name>
<servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>
<!-- eXist's home directory. All file names in the configuration
file will be relative to this directory. -->
<init-param>
<param-name>basedir</param-name>
<param-value>WEB-INF/</param-value>
</init-param>
<init-param>
<param-name>start</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4. Als nächstes muÿ das Mapping für das Servlet deniert werden. Diese werden ebenfalls in der Datei web.xml von Cocoon wieder vor den
Cocoon Mappings deniert.
<!-- eXist's DatabaseAdminServlet --> <servlet-mapping>
<servlet-name>EXistServlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
6
5. Nun muss in der Datei cocoon.xconf noch der Treiber für den Datenbankzugri über die XMLDB API und dem xmldb Pseudoprotokoll
deniert werden. Dazu wird in cocoon.xconf ein zusätzlicher xmldb
Treiber hinzugefügt.
<driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>
6. Um die XSP Logicsheets von Exist verwenden zu können muss noch
eine Denition in der Datei cocoon.xconf vorgenommen werden. Die
Denition wird direkt nach der Denition der JAVA Eigenschaften vorgenommen!
<builtin-logicsheet>
<parameter name="prefix" value="xdb" />
<parameter name="uri" value="http://exist-db.org/xmldb/1.0" />
<parameter name="href" value="resource://org/exist/xmldb.xsl" />
<builtin-logicsheet>
<parameter name="prefix" value="xdb" />
<parameter name="uri" value="http://exist-db.org/xmldb/1.0" />
<parameter name="href" value="resource://org/exist/xmldb.xsl" />
</builtin-logicsheet>
</builtin-logicsheet>
7. Nun kann der Inhalt von EXIST-HOME/webapp/ in ein Verzeichnis
im Cocoon-Rootverzeichniss kopiert werden (z. B. cocoon/exist/).
8. Wichtig ist dass in der Kongurationsdatei von Exist, conf.xml im
cocoon/WEB-INF/ Ordner, der Pfad für die Datenbankresourcen geändert wird. Wurde der Pfad cocoon/exist verwendet, muss der Pfad
auf '../exist/WEB-INF/data' geändert werden!
<db-connection database="native" files="../exist/WEB-INF/data"
pageSize="4096" cacheSize="48M" free_mem_min="5">
7
3
Tomcat, Cocoon und Exist in Eclipse 3.1
3.1
Installation von Apache Tomcat in Eclipse
Um Tomcat nun aus der Eclipse Entwicklungsumgebung starten zu können,
müssen zusätzlich zur oben beschriebenen Standardinstalation von Tomcat
noch weitere Schritte ausgeführt werden. Dabei das einspielen des Patches
'JDK 1.4 Compatability Package' der auf der Tomcat HP zu nden ist, nicht
vergessen.
1. Download des Susdeo Eclipse Tomcat Launcher Plugin ([Susdeo, 2005]).
Das Zip-Archiv in den Ordner Eclipse/plugin entpacken und Eclipse
starten.
2. In der Naviagionsleiste FENSTER->Perspektive bearbeiten wählen.
Den Dialog 'Andere' önen und dort 'Tomcat' markieren. Dialog durch
bestätigen schlieÿen.
3. Im Naviagionsmenü FENSTER->BENUTERVORGABEN, Tomcat auswählen.
4. Hier die richtige Tomcat Version wählen, in unserem Fall 5.x, und das
Tomcat-Homeverzeichnis mit dem Browse Button auswählen. Dialog
mit Ok schlieÿen.
5. Will man das Invoker-Servlet von Tomcat verwenden, es ermöglicht
das Testen von Servlet-Klassen durch Eingabe des Klassenpfades im
Browser, muss noch überprüft werden ob folgende Zeilen in der Datei
web.xml von Tomcat nicht auskommentiert ist.
<servlet-mapping>
<servlet-name>invoker</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
Nun kann man direkt aus Eclipse heraus, Tomcat starten und stoppen.
Und auch die Kommandozeilenausgabe in der Konsole verfolgen.
6. Um Cocoon nicht immer als *.war Archiv in Tomcat entpacken zu müssen gibt es die Möglichkeit Tomcat mitzuteilen wo Cocoon im Eclipse
Workspace zu nden ist. Hierfür ist der Eintrag folgender Zeile am Ende
der Datei server.xml im conf Verzeichnis von Tomcat erforderlich.
8
<Server>
......
<Context path="/cocoon" reloadable="true"
docBase="X:\Eclipse_Workspace\cocoon-2.1.7\build\webapp"
workDir="X:\Eclipse_Workspace\cocoon-2.1.7\build\work" />
</Host>
</Engine>
</Service>
</Server>
Wobei 'path' den Namen angibt mit dem Cocoon unter Tomcat eingetragen wird und unter welchem es im Browser nach dem Host und
Port von Tomcat gefunden wird. 'docBase' gibt an wo das Verzeichnis
'webapp' von Cocoon zu nden ist. Dieses erhält man natürlich erst
nach dem compilieren von Cocoon. 'workDir' gibt das Verzeichnis an
in dem temporäre Dateien gespeichert werden (optional).
3.2
Cocoon 2.1.7 in Eclipse 3.1 laden
1. Entpacken der Cocoon-Dateien in den Eclipse-Workspace Ordner (wird
bei der installation von Eclipse angelegt). Die Dateien sollen nun in
einer Verzeichnisstruktur
eclipse_workspace/cocoon-2.1.7/...
zu nden sein.
2. Onen eines Command-line-Fensters, wechseln in obigen Ordner (eclipseworkspace/cocoon-2.1.7/...) durch Eingabe von
build eclipse-project
werden die notwendigen *.project und *.classpath Dateien angelegt, die
notwendig sind um Cocoon in Eclipse zu laden.
Dieser 'build' Vorgang dauert je nach Hardware ca. 8 - 10 Sekunden.
3. Starten der Eclipse-Arbeitsoberäche. Unter der Navigationsleiste DATEI>NEU->Java Projekt wählen.
9
4. Es wird ein Dialogfenster geönet um ein Java Projekt anzulegen. Unter
Projektname nun den gleichen Namen eingeben wie der Cocoon Ordner
im Eclipse Workspace heiÿt. In unserem Fall: cocoon-2.1.7
Im Fieldset 'Inhalt' muss das Feld 'Neues Projekt im Arbeitsbereich
erstellen' gewählt sein.
Die restlichen Einstellungen können standardmäÿig übernommen werden.
Nur wenn der Name des Projektes mit dem Namen des Cocoon-Ordners
übereinstimmt erscheint im 'Neues Java Projekt erstellen' Fenster die
Meldung:
"Die angegebene externe Position ist bereits vorhanden .... versucht
der Assistent automatisch ... Quellen- und Klassenpfade zu ermitteln
... entsprechend zu kongurieren."
Nun auf 'Fertig stellen' klicken. Nach ein bisschen rechenarbeit sollte
das Projekt 'cocoon-2.1.7' geönet werden.
5. Nun noch unter dem Punkt Projekt in der Navigationsleiste, PROJEKT>Bereinigen wählen. Vorher sicher stellen das der Punkt 'Automatisch
Erstellen' nicht markiert ist.
Cocoon ist nun als Eclipse Projekt angelegt nun muss es natürlich noch
kompiliert werden können. Dazu sind folgende Schritte notwendig.
3.3
Erstellen von Cocoon mit Ant von Eclipse:
Für das compilieren von Cocoon mit dem Ant-Tool von Eclipse werden die
neuesten JAR Dateien von Xerxes und Ant benötigt. Um diese Einzubinden
sind folgende Schritte notwendig.
1. In der Navigationsleise von Eclipse auf FENSTER->Benutzervorgaben
klicken. In den Benutzervorgaben die Anzeige für ANT->LAUFZEIT
önen. Im der Karteikarte 'Klassenpfad', 'Globale Einträge' anklicken
(markieren). Nun auf 'JARs hinzufügen...' klicken. Es Erscheint ein
Fenster 'JARs Auswählen' in dem Unser Cocoon Projekt angeführt ist.
Die Datei
cocoon-2.1.7/tools/lib/ant-contrib-0.6.jar
10
auswählen. Sie wird zu den Globalen einträgen hinzugefügt.
Den Vorgang für die Dateien
cocoon-2.1.7/lib/endoresed/xml-apis.jar
cocoon-2.1.7/lib/endoresed/xercesImpl-2.6.2.jar
wiederholen.
Nun das Fenster 'Benutervorgaben' durch klicken von OK schlieÿen.
2. Nun kann die Datei 'build.xml' von Cocoon in das Eclipse Ant geladen
werden.
Auf FENSTER->SICHT anzeigen...->ANT klicken. In der JAVA-Perspektive
erscheint nun das Ansichtsfenster für Ant. Nun einfach die build.xml
aus dem Cocoon Stammverzeichnis in die ANT-Sicht ziehen. Dort müssten nun sämtliche Build-Ziele, mit einem kleinen grünen Kreis davor,
erscheinen.
Um nun beispielsweise die Cocoon-Webapp zu erstellen, einfach einen
doppelklick auf das Ziel 'webapp' in der Ant-Sicht. Die Ausgabe der
Erstellung ist in der Konsole zu verfolgen.
3. Oene Fragen:
Fügt man Cocoon neue Klasen und Pakete hinzu, werden diese nicht
in dem Ordner in dem sich auch die *.java Dateien benden erstellt,
sonder in dem Ordner:
eclipse_workspace\cocoon-2.1.7\build\eclipse\...
Man kann sie natürlich an die gewünschte Stelle kopierent, dies scheint
aber eine unbefriedigende Lösung zu sein. Vielleicht weiÿ ja jemand
Rat wie dieses Manko behoben werden kann!
3.4
Integration von eXist in Apache Cocoon
Um eXist in Cocoon unter Verwendung von Eclipse zu integrieren sind folgende Schritte notwendig. Die direkte integration hat unter anderem den
Vorteil dass eXist automatisch mit Cocoon mit gestartet wird.
Hier wird davon ausgegangen dass Cocoon in der angegebenen Version im
Servletcontainer Tomcat lauähig ist und Tomcat über Eclipse gestartet werden kann. Weiters muss eXist in einem beliebigen Verzeichniss installiert und
über EXIST-HOME/ erreichbar sein.
11
1. Aus dem Verzeichnis EXIST-HOME/lib/core sind folgende Dateien in
das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• commons-pool-1.1.jar
• xmlrpc-1.2-patched.jar
• xmldb.jar
Da eXist die aktuellen Versionen der XMLDB API benötigt müssen
folgende älteren Files aus dem Verzeichnis /cocoon/WEB-INF/lib gelöscht werden.
• xmlrpc-1.1.jar
• xmldb-api-20030701.jar
• xmldb-common-20030701.jar
• xmldb-xupdate-20040205.jar
Aus dem Verzeichnis EXIST-HOME/lib/optional sind folgende Dateien
in das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• castor-0.9.5.jar
• commons-leupload-1.0.jar
• isorelax.jar
• xsdlib.jar
• msv.jar
• Anmerkung: Wird auch die Datei jgroups-all.jar in dieses Verzeichnis kopiert (wie ohne Eclipse funktionsfähig) läuft die Datenbank
und auch Cocoon nicht!
Aus dem Verzeichnis EXIST-HOME sind folgende Dateien in das Verzeichnis /cocoon/WEB-INF/lib zu kopieren:
• exist.jar
• exist-optional.jar
2. Als nächstes muss die Kongurationsdatei für Exist (EXIST-HOME/webapp/WEBINF/conf.xml) in das Verzeichnis ../cocoon/WEB-INF/ kopieren.
12
3. Editieren der web.xml Datei im Verzeichnis /cocoon/WEB-INF/
Drei Servlets sind für den Betrieb von eXist in Cocoon unerlässlich.
Zum einen das EXistServlet selbst, das xmlrpc-Servlet wird benötigt
um mit dem Commandline-Client auf Exist zuzugreifen, und das XQueryServlet um die Admin-Seiten und die Beispiele die in eXist enthalten
sind verwenden zu können!
Anmerkung: Für den Zugri auf eXist über web-dav oder SOAP müssten weitere Servlets deniert werden.
Die notwendigen EXIST-Servlets müssen vor dem Cocoon-Servlet deniert werden. Den folgenden Code vor dem Cocoon-Servlet in der Datei
web.xml von Cocoon einfügen.
<!-- RpcServlet provides XML-RPC access to eXist -->
<servlet>
<servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
<servlet-class>org.exist.xmlrpc.RpcServlet</servlet-class>
</servlet>
<!-- XQueryServlet generates HTML from an XQuery file. -->
<servlet>
<servlet-name>XQueryServlet</servlet-name>
<servlet-class>org.exist.http.servlets.XQueryServlet</servlet-class>
<init-param>
<param-name>uri</param-name>
<param-value>xmldb:exist:///db</param-value>
</init-param>
<init-param>
<param-name>form-encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>container-encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
13
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</servlet>
<!-- DatabaseAdminServlet: this servlet can be used to ensure that
eXist is running in the background. Just set the start-parameter
to true and load-on-startup to 1 -->
<servlet>
<servlet-name>EXistServlet</servlet-name>
<servlet-class>org.exist.http.servlets.EXistServlet</servlet-class>
<!-- where to find eXist's configuration file
relative to the basedir of the web-application.
-->
<init-param>
<param-name>configuration</param-name>
<param-value>conf.xml</param-value>
</init-param>
<!-- eXist's home directory. All file names in
the configuration file will be relative to this
directory.
-->
<init-param>
<param-name>basedir</param-name>
<param-value>WEB-INF/</param-value>
</init-param>
<init-param>
<param-name>start</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
4. Als nächstes müssen die Mappings für die obigen Servlets deniert werden. Diese werden ebenfalls in der Datei web.xml von Cocoon wieder
vor den Cocoon Mappings deniert.
14
<!-- Define where the XMLRPC servlet listens -->
<servlet-mapping>
<servlet-name>org.exist.xmlrpc.RpcServlet</servlet-name>
<url-pattern>/xmlrpc</url-pattern>
</servlet-mapping>
<!-- eXist's DatabaseAdminServlet -->
<servlet-mapping>
<servlet-name>EXistServlet</servlet-name>
<url-pattern>/servlet/*</url-pattern>
</servlet-mapping>
<!-- XQueryServlet -->
<servlet-mapping>
<servlet-name>XQueryServlet</servlet-name>
<url-pattern>*.xql</url-pattern>
</servlet-mapping>
5. Nun muss in der Datei cocoon.xconf noch der Treiber für den Datenbankzugri über die XMLDB API und dem xmldb Pseudoprotokoll
deniert werden. Dazu wird in cocoon.xconf ein zusätzlicher xmldb
Treiber hinzugefügt. Unter '<! xmldb pseudo protocol >' bei den
Source-Factories folgenden Treiber hinzufügen.
<driver class="org.exist.xmldb.DatabaseImpl" type="exist"/>
Um mögliche Wechselwirkungen zu vermeiden sollten die Treiber für die
Standard Cocoon XML-Datenbank (Xindice) auskommentiert werden.
6. Die XSP Logicsheets sind notwendig um die mit eXist gelieferten Beispiele und die XSP Funktionalität nutzen zu können. Um die XSP
Logicsheets von Exist verwenden zu können muss noch eine Denition
in der Datei cocoon.xconf vorgenommen werden. Die Denition wird
direkt nach der Denition der JAVA Eigenschaften vorgenommen!
<markup-languages>
<xsp-language logger="core.markup.xsp" name="xsp">
<parameter name="prefix" value="xsp"/>
<parameter name="uri" value="http://apache.org/xsp"/>
15
<!--+ | Properties for the java language +-->
<target-language name="java">
<!-- Defines the XSP Core logicsheet for the Java language -->
<parameter name="core-logicsheet" value="resource://org/apache/cocoo
<builtin-logicsheet>
<parameter name="prefix" value="xdb"/>
<parameter name="uri" value="http://exist-db.org/xmldb/1.0"/>
<parameter name="href" value="resource://org/exist/xmldb.xsl"/>
</builtin-logicsheet>
...
7. Nun kann der Inhalt von EXIST-HOME/webapp/ in ein Verzeichnis
im Cocoon-Rootverzeichniss kopiert werden (z. B. cocoon/exist/).
8. Wichtig ist dass in der Kongurationsdatei von Exist, conf.xml im
cocoon/WEB-INF/ Ordner, der Pfad für die Datenbankresourcen geändert wird. Wurde der Pfad cocoon/exist verwendet, muss der Pfad
auf '../exist/WEB-INF/data' geändert werden!
<db-connection database="native" files="../exist/WEB-INF/data"
pageSize="4096" cacheSize="48M" free_mem_min="5">
9. Nun Cocoon mit der integrierten eXist Datenbank nochmals compilieren und Tomcat aus Exlipse heraus starten. Die Datenbank müsste nun
unter
http://localhost:8080/cocoon/exist/index.xml
erreichbar sein. Bei den Beispielen oder manch anderen Seiten kann es
notwendig sein Pfade für div. Stylesheet Dateien anzupassen, da diese
relativ zum EXIST-HOME Verzeichnis angegeben sind. Dies lässt sich
aber recht einfach aus den Fehlermeldungen für die entsprechenden
Dateien erkennen.
10. Um das Client-Tool von eXist nun auch für die Integrierte Variante von
eXist verwenden zu können muss beim Client-Tool, welches im EXISTHOME/bin Verzeichnis zu nden ist, folgende URL eingeben werden:
xmldb:exist://localhost:8080/cocoon/xmlrpc
16
Um diese URL standardmäÿig einzutragen muss man im EXIST-HOME
die Datei client.properties folgendermaÿen ändern:
# access eXist via XML-RPC provided by remote Tomcat
uri=xmldb:exist://localhost:8080/cocoon/xmlrpc
11. Treten beim Import der Beispieldaten (shakespeare etc.) über die AdminSeiten, Probleme (es werden zwar die Collections angelegt aber keine
Dateien angelegt) auf, kann dies daran liegen, dass nun unsere Exist
Datenbank innerhalb von Cocoon liegt und Probleme mit den Importpfaden vorhanden sind. In der Datei setup.xqm (Verzeichnis coocon/exist/admin) wird über util:system-property der Pfad zum WEBINF Verzeichnis von Exist abgefragt. Anschlieÿend wird der Pfad so
umgebaut dass er auf das Verzeichnis samples auf gleicher ebene wie
WEB-INF zeigt. Mit dem Befehl util:system-property wird nun aber
nicht die Umgebungsvariable aus dem System ausgelesen sondern der
Pfad in dem die conf.xml von Exist zu nden ist. Das ist ja bei uns
der WEB-INF Ordner von Cocoon. Unglücklicherweise gibt es auf gleicher ebene unterhalb von WEB-INF auch von Cocoon einen Ordner
'samples', Exist importiert nun die dort enthaltenen XML-Files.
Da es sich ja hier ohnehin nur um den Import der Beispieldaten handelt,
habe ich das Problem sozusagen auf die harte Tour gelöst, ich habe der
Variable 'dir' in der Funktion setup:ImportLocal den absoluten Pfad
zum Exist Verzeichnis angegeben, in das wir Exist zu begin installiert
haben (z. B. bei mir x:
exist).
Nun müsste der Import der Beispieldatein einwandfrei funktionieren.
12. ungelöste Probleme
Zur zeit kann ich über das Client-Tool keine XML-Dateien hochladen,
andere (zb. css) funktionieren problemlos. Ich vermute dass auch hier
irgendwo ein Problem mit irgendwelchen Pfaden vorliegt. Möglicherweise auch ein Problem mit Zugrisrechten. Die Verwendung des Client
Tools ist aber nicht zwingend erforderlich. Ko
Vielleicht weiÿ ja einer von euch Rat. Ansonsten werde ich das Dokument updaten wenn ich neues weiÿ.
17
Literatur
[Wiki.exist-db.org, 2005] Wiki zur eXist Datenbank, http://wiki.existdb.org/comments/CocoonInstall/, Stand Juli 2005
[Apache Tomcat, 2005] Apache
Tomcat
http://jakarta.apache.org/tomcat/, Stand Juli 2005
Homepage,
[eXist, 2005] native XML Database Exist Homepage, http://exist-db.org,
Stand Juli 2005
[cvs.sourceforge.net, 2005] Optionale CVS Komponenten für eXist,
http://cvs.sourceforge.net/viewcvs.py/exist/eXist-1.0/lib/optional/,
Stand Juli 2005
[Susdeo, 2005] Susdeo
Eclipse
Tomcat
Launcher
http://www.sysdeo.com/eclipse/tomcatPlugin.html, Stand
ber 2005
18
Plugin,
Novem-