Liferay & Glassfish

Kurt Klinner

Hallo zusammen,

anbei eine kurze Zusammenfassung wie man Liferay auf einem bereits installierten Glassifish Application Server (Version 2) zum Laufen bringt. Bei Liferay handelt es sich um eine Open Source Portal / Collaboration software (mit kommerziellen Ablegern und Support), die so ziemlich alles beinhaltet was momentan "State-of-the-art" im Portalsoftwareumfeld ist.

Die Webseite des Projektes erreicht man unter http://www.liferay.com/web/guest/home, die entsprechenden Archive kann man via sourceforge.net.

Folgende Pakete muss man aus dem Unterprojekt Liferay Portal herunterladen

  • Liferay Portal 5.2.2 WAR File ( liferay-portal-5.2.2.war )
  • Liferay Portal 5.2.2 Dependencies file ( liferay-portal-dependencies-5.2.2.zip)
  • Liferay Portal 5.2.2 SQL Scripte (liferay-portal-sql-5.2.2.zip)
  • Liferay Portal 5.2.2 Extensions ( liferay-portal-ext-5.2.2.zip)

Konfigurieren der MySQL Datenbank

Im ersten Schritt legen wir einen Datenbank namens lportal an.
mysql -uroot -ppassword
create database lportal;

Alternativ kann man Datenbank und Tabellen + Inhalte über eines der mitgelieferten Skripte aus dem liferay-portal-sql-5.2.2.zip

mysql -uroot -ppassword < create-minimal-mysql.sql

Anschliessend erzeugt man noch einen User lportal (Defaultmässiges Passwort lportal) und verpasst dem User die nötigen Rechte

mysql> grant all on lportal.* to lportal identified by 'lportal';
mysql> grant all on lportal.* to lportal@localhost identified by 'lportal';

Erzeugen einer neuen Glassfish Domain

Mittels asadmin erzeugen wir eine neue Domain namens lportal
/usr/local/glassfish/bin/asadmin create-domain --adminport 14848 --instanceport 18080 lportal
Please enter the admin user name>
Please enter the admin password>
Please enter the admin password again>
Please enter the master password [Enter to accept the default]:>
Please enter the master password again [Enter to accept the default]:>
Using port 14848 for Admin.
Using port 18080 for HTTP Instance.
Default port 7676 for JMS is in use. Using 50684
Default port 3700 for IIOP is in use. Using 50685
Default port 8181 for HTTP_SSL is in use. Using 50686
Default port 3820 for IIOP_SSL is in use. Using 50687
Default port 3920 for IIOP_MUTUALAUTH is in use. Using 50688
Default port 8686 for JMX_ADMIN is in use. Using 50689
Domain being created with profile:developer, as specified by variable AS_ADMIN_PROFILE in configuration file.
Security Store uses: JKS
Domain lportal created.

Installation der benötigten Bibliotheken

Nachdem die Domain erfolgreich erzeugt wurde, müssen wir einige Bibliotheken in das lib Verzeichnis der Domain kopieren (in meinem Fall liegt dieses unter /usr/local/glassfish/domains/lportal/lib)

Im folgenden Liste ich alle Archive auf, die benötigt werden um das Portal lauffähig zu bekommen, etliche Anleitungen arbeiten nur mit einem Subset meiner Auswahl, jedoch führt dies in der Konstellation Liferay 5.2.2 / Glassfish 2.1 zu etlichen Exceptions.

Folgende Archive müssen aus den jeweiligen Überverzeichnissen kopiert werden

liferay-portal-dependencies-5.2.2

  • container.jar
  • portal-kernel.jar
  • portal-service.jar
  • portlet-container.jar
  • portlet.jar
  • saw-api.jar
liferay-portal-ext-5.2.2/lib/development/
  • mysql.jar
  • serializer.jar
  • xalan.jar
  • xercesImpl.jar

Anlegen der JDBC Pools / JDBC Resourcen

Die folgende Schritte können alternativ über das Web-Gui des Application-Server durchgeführt werden. Die Url für die Adminoberfläche ist http://localhost:14848.

Als erstes erzeugen wir den Conectionpool mit folgender Anweisung

/usr/local/glassfish/bin/asadmin create-jdbc-connection-pool \
--datasourceclassname com.mysql.jdbc.jdbc2.optional.MysqlDataSource \
--host localhost \
--port 14848 \
--user lportal \
--restype javax.sql.DataSource \
--description "MySQL Liferay Portal 5.2.2" \
--property ServerName=localhost:Password=lportal:DatabaseName=lportal:User=lportal:Port=3306:PortNumber=3306:LoginTimeout=0:ProfileSql=false \
MySQL_Liferay
Please enter the admin password>
Command create-jdbc-connection-pool executed successfully.

aschliessend erstellen wir die entsprechende JDBC Resource

/usr/local/glassfish/bin/asadmin create-jdbc-resource \
--connectionpoolid MySQL_Liferay
--host localhost \
--port 14848 \
--user lportal \
--enabled=true \
--description "Liferay Portal 5.2.2 Pool" \
jdbc/LiferayPool
Please enter the admin password>
Command create-jdbc-resource executed successfully.

Anlegen einer JavaMail Resource

Um einen Mailversand aus dem Portal zu ermöglichen, muss noch eine JavaMail Resource erzeugt werden
/usr/local/glassfish/bin/asadmin create-javamail-resource \
--mailhost localhost \
--mailuser root@localhost \
--fromaddress root@localhost \
--host localhost \
--port 14848 \
--user lportal \
--enabled=true \
--description "Liferay Portal Mail" \
mail/MailSession

Deployment der Applikation

Nachdem alle vorbereitenden Schritte abgeschlossen sind, starten wir die Application Server Instanz einmal durch
/usr/local/glassfish/bin/asadmin stop-domain lportal
/usr/local/glassfish/bin/asadmin start-domain lportal

und deployen die Applikation

/usr/local/glassfish/bin/asadmin deploy \
--host localhost \
--port 14848 \
--user lportal \
--contextroot / \
--precompilejsp=false \
--verify=false \
--name "Liferay-Portal-5.2.2" \
--enabled=true \
liferay-portal-5.2.2.war

Nachdem der Deployvorgang abgeschlossen ist, muss unterhalb der Applikationsverzeichnis noch ein Properties File names
portal-ext.properties mit folgendem Inhalt (einer Referenz auf die entsprechende JDBC Resource)

jdbc.default.jndi.name=jdbc/LiferayPool

in folgendem Verzeichnis
/usr/local/glassfish/domains/lportal/applications/j2ee-modules/Liferay-Portal-5.0.1/WEB-INF/classes/
angelegt werden.

Nach einem weiteren Neustart der Domain, erreicht man die Applikation unter
http://localhost:18080/web/guest und kann sich mit test@liferay.com und dem Passwort liferay anmelden

Viel Spass beim Ausprobieren

Kurt

P.S. Folgende Links waren recht hilfreich

http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Database+Configuration

http://blogs.sun.com/ashamash/entry/deploying_liferay_into_an_existing

http://hobione.wordpress.com/2008/12/08/liferay-portal-on-glassfish-app-server/