Ich habe mir etwas Zeit genommen, um Weceem auszuprobieren. Weceem ist ein Content Management System (CMS) basierend auf dem Grails Framework. Es kann standalone als Applikation oder als Plugin in einer Applikation betrieben werden. Im folgenden beschreibe ich, wie Weceem standalone in Apache Tomcat benutzen werden kann. Es existiert bereits eine Anleitung auf der Weceem Webseite, aber sie ist sehr spartanisch und deckt einige Details nicht ab. Vor allem fehlt eine Fehlerbeschreibung oder Tipps, falls die Installation nicht erfolgreich verläuft.
Voraussetzungen
Für die Installation werden die folgenden Softwarekomponenten benötigt:
- Java Version 1.6 (6.0) oder höher
- Ein Servlet Container wie Apache Tomcat (Catalina), Jetty oder höher
- Ein Datenbankserver mit Hibernate Unterstützung wie MySQL oder Postgresql
- Webceem Standalone Applikation in einer War-Datei
Einrichtung vor dem Deployment (Weceem Version 0.8):
Die folgenden Variablen müssen im System (ausführenden Benutzer) gesetzt sein (Beispiel für Ubuntu 9.X):
export JAVA_PATH=/usr/lib/jvm/java-6-sun/
export CATALINHA_HOME=/opt/tomcat-6.0.26
Weceem setzt Lucene für die Suche ein. Lucene benötigt einen Ordner für die Index Dateien. Dafür muss der folgende Ordner für den Tomcat-Benutzer Schreibrechte besitzen:
/var/cache/weceem
Die Datenbank-Einstellungen in der Standalone Version sind nicht in dem War-Paket enthalten, da die Einstellungen für jede Installation anders sind. Für MySQL sieht die Datei mit den Einstellungen wie folgt aus (Dateiname z.B. $CATALINA_HOME/conf/weceem.properties):
dataSource.pooled=true
dataSource.driverClassName=com.mysql.jdbc.Driver
dataSource.username=YOURWECEEMUSER
dataSource.password= YOURWECEEMPASSWORD
dataSource.dbCreate=update
dataSource.url=jdbc:mysql://localhost:3306/weceem
Damit Die Konfigurationsdatei für die Datenbank von der Webanwendung gefunden wird, muss sie über die Parametrisierung des Servlet Containers gesetzt werden. Dafür habe ich die Variable CATALINA_OPTS verwendet. Ich habe das Startskript des Tomcats direkt für Testzwecke verändert. Das Startskript ist hier zu finden: $CATALINA_HOME/bin/catalina.sh . Der Eintrag sieht wie folgt aus:
CATALINA_OPTS="-Dweceem.config.location=file:///$CATALINA_HOME/conf/weceem.properties"
Weceem enthält keine Datenbank-Connectoren, da sie meistens unter einer anderen Lizenz stehen. Dieser muss dem Servlet Container (hier Apache Tomcat) hinzugefügt werden. Die Jar-Datei des MySQL-Connectors muss entweder in den Java CLASSPATH Variable aufgenommen werden oder in den Ordner $CATALINA_HOME/lib/ kopiert werden.
Bevor die Anwendung deployt werden kann, müssen vorab die JAVA-Speichereinstellungen angepasst werden. Das kann wieder in dem Catalina Startskript $CATALINA_HOME/bin/catalina.sh geschehen. Das habe ich durch das Hinzufügen der folgenden Variable gemacht:
JAVA_OPTS="-server -Xmx512m -Xms512m -XX:MaxPermSize=256m"
Damit sollten alle notwendigen Einstellungen gesetzt sein. Jetzt muss die War-Datei von Weceem richtig benannt und in den Order $CATALINA_HOME/webapps/ kopiert werden. Das Deployen erledigt Tomcat selber. Nach dem Start des Servlets Containers sollte die Anwendung unter dem folgenden Pfad zu erreichen sein. Für den Test habe ich die Anwendung (War-Datei name weceem.war) weceem genannt:
http://localhost:8080/weceem/
Die Administration der Seite ist unter dem „admin/“ Pfad zu erreichen. Benutzername und Passwort sind bei der ersten Ausführung beide auf „admin“ gesetzt. Bei mir sieht der Pfad wie folgt aus:
http://localhost:8080/weceem/admin/
Probleme
Meine ersten Versuche waren nicht so erfolgreich. Deswegen sollte bei Probleme, in dem Log-Ordner $CATALINA_HOME/log in der Datei catalina.log nach Fehlermeldungen Ausschau gehalten werden. Die Java-Stacktraces zeigen meistens ziemlich schnell, wo der Fehler liegt.
Quellen und Hinweise:
… Wenn ich Zeit finde, dann übersetzte ich die ganze Geschichte auf Englisch.