PostgreSQL
Portierung Oracle
AS Geronimo
Liferay
.Net (VB)
PowerPoint-Tips
Excel-Tips
Word-Tips
Outlook-Tips
Zitatenschatz
Dietmar Keune


Für das Können gibt es nur einen Beweis: das Tun.
Marie von Ebner-Eschenbach Öst. Schriftstellerin (1830-1916)

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

Am Anfang
Selbst
Der engste Kreis
Impressum