Geronimo
Anleitung
Installation Geronimo und Liferay mit eigenen Portlets
Voraussetzung
Erstelle das Zielverzeichnis,
diese Anleitung geht von D:\web aus.
Installation von 7zip.
Installation von Notepad++ (o.a.
Editor)
Java
Es sollte ein Java 5 oder 6 installiert
sein. Hier gehen wir vom Java SE 1.5 SDK aus, das
im Verzeichnis C:\Java\jdk1.5.0_11
installiert ist. (Achtung: Es gibt verschiedene JDK. Wenn der
ServerBS 64bit ist, muss man JDK 64bit Version downloaden!)
ServernameX
(jdk-6u14-windows-x64.exe)
Geronimo
Zuerst Geronimo 2.1.4 herunterladen und
im Unterverzeichnis D:\web\geronimo auspacken.
ServernameX
(geronimo-tomcat6-javaee5-2.1.4-bin.zip)
Jetzt sieht der Verzeichnisbaum so aus:
D:\web\geronimo\bin
\cluster-repository [...]
Schließlich muss die Java-Umgebung für
Geronimo noch korrekt konfiguriert werden. Liferay benötigt recht
viel Speicher, also muss die Datei
D:\web\geronimo\bin\geronimo.bat
angepasst werden, indem über den
Kommentarzeilen eingefügt wird:
SET JAVA_HOME=C:\Java\jdk1.5.0_11
SET JAVA_OPTS=-Xms512m -Xmx1824m -XX:MaxPermSize=512m -Dhttp.proxySet=true
  -Dhttp.proxyHost=proxy.domaene.de
  -Dhttp.proxyPort=888
  -Dhttp.nonProxyHosts=
  ServernameX|ServernameX.Domaene.de|localhost|Servername_DB|Servername_DB.domäne.de
Nun kann auf der Kommandozeile ins
Verzeichnis d:\web\geronimo\bin gewechselt werden und mit
geronimo run der Server testweise gestartet werden. Ohne
weitere Konfiguration ist er über http://localhost:8080/
erreichbar.
Von dort sollte man prüfen, ob die
Geronimo Admin-Konsole erreichbar ist, unter
http://localhost:8080/console/ mit dem Kontonamen "system"
und dem Kennwort "manager". Daraufhin sollte unter "Web
app WARs" das welcome-tomcat Modul gesucht werden, dass den
Kontext "/" belegt, und dieses nach einem Klick auf "Expert
User" gestoppt werden. Es belegt
nämlich den Platz, den das
Liferay-Portal einnehmen sollte. Nach wie vor ist die Konsole direkt
unter der o.a. Adresse erreichbar.
Mit Strg-C auf der Kommendozeile
sollte der Geronimo-Server nun erst einmal wieder beendet werden
(Terminate Batch Job ist zu bejahen). Alternativ ist das
Herunterfahren über die Geronimo Konsole möglich.
Liferay-Abhängigkeiten
Zuerst die Liferay-Basisbibliotheken
(Downloads/Additional Files/Liferay Portal 5.2.3
Dependencies )
ServernameX
(liferay-portal-dependencies-5.2.3.zip)
herunterladen und im Unterverzeichnis
D:\web\geronimo\var\shared\lib auspacken.
Jetzt enthält dieses Verzeichnis die
Dateien
hsql.jar,
annotations.jar
usw.
Die beiden Dateien portal-kernel.jar
und portal-service.jar sollten auf dem Desktop-Rechner
aufbewahrt werden, wir werden sie
später noch benötigen.
Daraufhin sollte von der Seite
http://jdbc.postgresql.org/download.html#current
ein aktueller PostgreSQL-Treiber geladen werden
für Java 1.5 ist der
JDBC3-Treiber zu wählen,
wird Java 1.6 gewählt, sollte der
JDBC4-Treiber gewählt werden
ServernameX
postgresql-8.4-701.jdbc4.jar)
Dieser sollte ebenfalls im Verzeichnis
D:\web\geronimo\var\shared\lib abgelegt werden.
Nun muss der Server wieder gestartet
werden ("geronimo run").
Zusätzlich muss dieser Treiber, wenn
er in eigenen Portlets verwendet werden soll, im Repository
installiert werden. Unter der Konsole unter Services/Repository bei
"Add Archive To Repository" den JDBC-Treiber
auswählen. Als Group sollte postgresql gewählt
werden, die anderen Daten werden automatisch ausgefüllt, wenn der
Dateiname erhalten blieb (ansonsten z.B. Artifact "postgresql-8.4",
Version "701.jdbc4", Type "jar"). Dann auf
"Install" klicken.
Nun muss der Server neu gestartet
werden .
Liferay
Nun sollte Liferay auf den eigenen
Rechner heruntergeladen werden (Downloads/Additional Files/Liferay
Portal 5.2.3 WAR).
ServernameX
(liferay-portal-5.2.3-modified.war)
Leider muss nun noch das Liferay
home-Verzeichnis modifiziert werden. Dazu muss die Liferay
WAR-Datei ausgepackt werden.
Im Ordner WEB-INF/classes eine
Datei namens portal-ext.properties angelegt werden, die zwei
Einträge enthält:
portal.ctx=/
liferay.home=d:/web
resource.repositories.root=d:/web
default.liferay.home=../..
auto.deploy.geronimo-tomcat.dest.dir=d:/web/geronimo/deploy
auto.deploy.geronimo.dest.dir=d:/web/geronimo/deploy
jdbc.default.driverClassName=org.postgresql.Driver
jdbc.default.url=jdbc:postgresql://ServernameX.domäne.de/portaldb
(Achtung! DB-Name
Casesensitive)
jdbc.default.username=portal
jdbc.default.password=lichtlos1
locale.default.request=true
locales=de_DE,en_US,es_ES,pt_PT,pl_PL
session.timeout=120
Wenn die PostgreSQL-Datenbank noch
nicht zur Verfügung steht, können die JDBC-Einträge auch
weggelassen werden - dann wird die
eingebaute Hypersonic-Datenbank verwendet. Diese ist
allerdings sehr fehleranfällig und
sorgt für mehr Probleme, als sie löst.
Die PortalDB muss in
Postgresql unter dem user portal angelegt werden. Diese Datenbank
wird leer gelassen, es ist
nicht nötig, ein Skript laufen zu lassen, dass die
Tabellen anlegt.
Zum Beispiel dieses Skript, das man
hier bekommt:
Downloads/Additional Files/Application Server
Plugins - Database Scripts/liferay-portal-sql-5.2.3.zip
ServernameX (auf Server_DB:
create-minimal-postgresql.sql)
Die oben genannten Dateien
portal-kernel.jar und portal-service.jar müssen jetzt
noch
in das Verzeichnis WEB-INF/lib kopiert
werden. Dies behebt ein Liferay-Problem, das
hier geschildert wurde:
http://issues.liferay.com/browse/LPS-3518
Dann muss die Liferay-WAR-Datei wieder
zusammengepackt werden. Das kann einfach mit einem
ZIP-Tool wie 7zip erledigt werden. Die
entstandene ZIP-Datei kann dann einfach wieder in eine
WAR-Datei umbenannt werden. Dabei ist
entscheidend, dass die Ordner wie dtd, errors usw.
direkt auf der höchsten Ebene der
ZIP/WAR-Datei auftauchen.
In der Admin-Konsole von
Geronimo muss jetzt unter Applications der Punkt "Deploy
New" gewählt werden. Schließlich sollte als WAR-Datei das
gerade heruntergeladene und modifizierte liferay.war ausgewählt
werden.
? Deploymentplan leer lassen!
WebINF sollte schon
Der Deploymentplan erfordert
etwas mehr Aufwand. Wir öffnen die heruntergeladene WAR-Datei
mit einem Entpacker und begeben uns ins
Verzeichnis WEB-INF. Dort kopieren wir die Datei
geronimo-web.xml heraus.
Nun muss der Eintrag zum
<inverse-classloading />entfernt werden.
Als nächstes muss der Eintrag um
liferay-pool komplett entfernt werden - also der gesamt
Dependency-Eintrag.
Der Eintrag für
liferay-portal-tomcat muss vom Typ war sein!
<moduleId>
<groupId>liferay</groupId>
<artifactId>liferay-portal-tomcat</artifactId>
<version>5.2.0</version>
<type>war</type>
<!--(nicht car )-->
</moduleId> ..8ok)
Ebenso sollte bei den Filtern
folgende Zeilen hinzugefügt werden (das ist noch nicht geklärt):
<filter>org.apache.xerces</filter>
<filter>org.hibernate</filter>
<filter>log4j</filter>
Diese bearbeitete Datei nehmen wir als
Deployment-Plan. "Start app after install" sollte
aktiviert sein. Damit sollte Liferay
sich starten lassen. In der Liste der Web-Anwendungen
unter Applications/Web App WARS solle
Liferay jetzt angezeigt werden.
Unter http://localhost:8080/ ist
Liferay jetzt zugänglich; als Kontoname ist "test@liferay.com"
zu verwenden, das Kennwort ist "test".
Liferay-Konfiguration rücksetzen
Immer wieder hört man davon, dass
Konfigurationen nicht funktionieren und der ganze Prozess neu
aufgesetzt werden muss. Dann:
Server stoppen
Verzeichnis
D:\web\geronimo\respostitory\liferay löschen
in
D:\web\geronimo\var\config\config.xml die letzte Zeile mit dem
Liferay-Eintrag entfernen
(<module
name="liferay/liferay-portal-tomcat/5.2.0/war"/>)
Server starten
Konfiguration
Eigene Portlets können jetzt deployed
werden und sollten funktionieren. Die Einrichtung
des Portlet-SDKs ist hier noch nicht
beschrieben. Zum Test kann allerdings das HolaMundo-Portlet
vom Verzeichnis wsi:Software/liferay
verwendet werden.
Ein neuer Admin-Nutzer
"open-sc.admin@charite.de" mit bekanntem Kennwort sollte
innerhalb Liferays angelegt werden und der alte Nutzer "test"
gelöscht werden. Ebenso sollte das system-Konto unter Geronimo mit
einem neuen Kennwort versehen werden.
Portlet-Entwicklung
Als Voraussetzung benötigen wir
Apache Ant, das im
System-PATH erreichbar sein sollte.
Das Liferay Plugins SDK
herunterladen und ins Verzeichnis C:\devel\sdk entpacken.
Die Einstellungen aus
C:\devel\sdk\build.properties sollten nicht direkt verändert
werden. Vielmehr solle der eigene Windows-Benutzername
herausgefunden werden. Hier wird von "mcornils"
ausgegangen. Dann wird eine Datei namens
C:\devel\sdk\build.mcornils.properties angelegt.
Es wird für den Build-Prozess
eigentlich davon ausgegangen, dass ein komplettes
Liferay-Geronimo-Bundle auf dem Desktop-Rechner installiert wurde.
Für den deploy-Vorgang wird sogar davon ausgegangen, dass die
Entwicklung auf dem Liferay-Serverrechner geschieht. Wir werden die
Entwicklung von der Auslieferung trennen.
Dazu laden wir zunächst ein aktuelles
Liferay-Geronimo-Bundle herunter. Wir entpacken es im Verzeichnis
c:\devel\bundle. Alternativ lässt sich von WSI auch das
Verzeichnis "bundle"
herunterladen, dass nur die für die
Kompilierung benötigten Dateien enthält. Das sind allerdings
noch immer etwa 100 MB. Entscheidend
sind die Unterverzeichnisse deploy und var, die
unter c:\devel\bundle\deploy/var
erreichbar sein müssen, bzw. über
c:\devel\bundle\geronimo-2.1.3\deploy/var.
Nun sind einige Konfigurationsvariablen
in der Datei build.mcornils.properties einzutragen:
app.server.dir=${project.dir}/../bundle
(oder
bundle/geronimo-2.1.3)
app.server.portal.dir=${app.server.dir}/deploy/liferay-portal.war
app.server.classes.portal.dir=${app.server.portal.dir}/WEB-INF/classes
app.server.lib.portal.dir=${app.server.portal.dir}/WEB-INF/lib
app.server.lib.global.dir=${app.server.dir}/var/shared/lib
auto.deploy.dir=${app.server.dir}/../deploy
required.portal.jars=commons-logging.jar,log4j.jar,util-bridges.jar,util-java.jar,util-taglib.jar
ACHTUNG! Keine Leerzeichen nach
den Pfadnamen hinterlassen!
Nun ist z.B. in einer Kommandozeile ins
Verzeichnis c:\devel\sdk zu gehen und daraufhin ins
Unterverzeichnis portlets. Mit create
helloWorld "Custom Hello World Portlet" erzeugt man nun das
Unterverzeichnis helloWorld-portlet und füllt es mit angepassten
Standard-Liferayportlet-Dateien.
Ich bin nicht sicher, warum, aber die
Ant-Datei build-common-plugin.xml im Verzeichnis c:\devel\sdk ist
scheinbar nicht korrekt. Es ist das ant-target "war" zu
suchen. In diesem wird nach dem Entfernen von der vorhergehenden
WAR-Datei per antcall das Target clean-portal-dependencies
aufgerufen. Das sollte aber erst nach dem Zippen der Dateien
geschehen. Die Zeile
<antcall
target="clean-portal-dependencies" />
ist also einen Block nach unten, direkt
vor das abschließende </target> zu verschieben.
Mit dem Befehl ant lässt sich das
frisch angelegt Portlet nun kompilieren. Eventuell muss vorher
ein geeigneter JAVA_HOME-Pfad gesetzt
werden, wenn das nicht bereits systemweit geschehen ist.
[TODO: portal-impl.jar,
commons-validator.jar, struts.jar, struts-el.jar, displaytags.jar -
offenbar nicht mehr nötig?]
THEME-Entwicklung
(siehe How_to HowTo_LiferayCSS)
Achtung!
Keine Namen beim Deploying aus Liferay heraus (Seite Verwalten ->
Layout -> weiter -> Datei hochladen) vergeben