viernes, 27 de junio de 2008

Liferay Portal en JBoss AS 4.2.2 GA

Liferay Portal es distribuido por defecto como un paquete pre-armado(bundle) que incluye la configuración completa de un servidor de aplicaciones dado (Jboss, BEA, Glassfish etc). No obstante, en un entorno de producción es probable que sea necesario utilizar el portal, pero solo como una aplicación más que comparte los recursos con otras aplicaciones y servicios. Otra razón para usar Liferay Portal como una aplicación más dentro de un servidor de aplicaciones existente, es si existe, por ejemplo, la necesidad de utilizar EJBs, pues esta no está disponible en el paquete prearmado distribuido por Liferay.

A continuación se presentan los pasos para llevar a cabo la configuración y el despliegue de Liferay en JBoss 4.2.2 GA.

Nota. Este procedimiento presume que se está usando alguna distribución de Linux / Solaris y que se está usando el JDK 1.5

1. Descargar los paquetes necesarios

+ Liferay-portal
+ Liferay-portal-dependencies
+ JBoss 4.2.2GA


2. Crear directorios de trabajo

mkdir -p ~/apps/tmp

3. Configurar variables de entorno

export JAVA_HOME=<ruta al jdk instalado >
export PATH=$JAVA_HOME/bin:$PATH

4. Instalar y configurar JBoss AS 4.2.2GA

a. Descomprimir e instalar paquete

unzip jboss-4.2.2.GA.zip -d ~/apps
cd ~/apps
ln -s jboss-4.2.2.GA jboss


b. Configurar opciones de memoria para JBoss

cd jboss/bin
vi run.conf

Modificar la línea de JAVA_OPTS que está sin comentar así:

JAVA_OPTS="-Xms512m -Xmx1204m -XX:MaxPermSize=256m -Dsun.rmi.dgc.client.gcInterval=3600000 \ -Dsun.rmi.dgc.server.gcInterval=3600000"

5. Probar la instalación de JBoss

cd ~apps/jboss/bin
./run.sh -c default

Una vez haya iniciado probar la conexión desde un browser a la dirección de la máquina, puerto 8080, ej http://192.168.0.2:8080

Detener luego el proceso usando CTRL+C en la consola donde fue lanzado el script run.sh.

6. Configurar una base de datos para Liferay
En este caso el ejemplo está con hypersonic, no obstante aplica para cualquier otra base de datos.

a. Configurar un datasource en JBoss para Liferay

cd ~/apps/jboss/server/default/deploy
vi liferay-ds.xml

Pegar el texto a continuación:

<datasources>
<local-tx-datasource>
<jndi-name>jdbc/LiferayPool</jndi-name>
<connection-url>jdbc:hsqldb:${jboss.server.data.dir}${/}hypersonic${/}liferayDB</connection-url>
<driver-class>org.hsqldb.jdbcDriver</driver-class>
<user-name>sa</user-name>
<password></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
<prepared-statement-cache-size>32</prepared-statement-cache-size>
<metadata>
<type-mapping>Hypersonic SQL</type-mapping>
</metadata>
<depends>jboss:service=Hypersonic,database=liferayDB</depends>
</local-tx-datasource>

<!-- For hsqldb accessed from jboss only, in-process (standalone) mode -->
<mbean code="org.jboss.jdbc.HypersonicDatabase"
name="jboss:service=Hypersonic,database=liferayDB">
<attribute name="Database">liferayDB</attribute>
<attribute name="InProcessMode">true</attribute>
</mbean>
</datasources>


b. Iniciar y detener JBoss para que cree los archivos correspondientes a la nueva base en hypersonic.

7. Configurar e Instalar Liferay Portal 5

a. Descomprimir el paquete de Liferay en el directorio temporal


cp liferay-portal-5.0.1.war ~/apps/tmp
cd ~/apps/tmp
mkdir tmp-war
jar xvf liferay-portal-5.0.1.war -C tmp-war

b. Liferay por defecto trata de correr en la raiz del servidor de aplicaciones, pero en este caso queremos que responda a una URL diferente, por ejemplo /portal. Para ello debemos modificar algunos archivos de configuración así:

cd tmp-war
cd WEB-INF

+ web.xml
Editar web.xml y agregar después del primer elemento lo siguiente:

<context-param>
<param-name>root_path</param-name>
<param-value>/portal</param-value>
</context-param>


+ jboss-web.xml
Editar jboss-web.xml y cambiar el context-root a /portal

<context-root>/portal</context-root>


+ portal-ext.properties
Crear el archivo portal-ext.properties en ~/apps/tmp/tmp-war/WEB-INF/classes
y digitar los siguientes datos:

#portal-ext.properties
portal.ctx=/portal
auto.deploy.dest.dir=../server/default/deploy
company.security.strangers=false
locales=es_ES,en_US
auto.deploy.deploy.dir=../liferay/deploy
# fin -portal-ext.properties.

c. Instalar las dependencias adicionales
Es necesario copiar las algunas librerías adicionales al lib de JBoss para que el portal pueda iniciar sin problemas.

unzip -j liferay-portal-dependencies-5.0.1.zip -d ~/apps/jboss/server/default/lib

d. Copiar Liferay Portal como WAR expandido en JBoss

mv ~/apps/tmp/tmp-war ~/apps/jboss/server/default/portal.war


8. Eso es todo!
Ahora basta con iniciar el servidor de aplicaciones para tener Liferay operando en JBoss y con la posibilidad de usar todas las herramientas adicionales proveídas por el servidor de aplicaciones como por ejemplo los EJB.


Referencias

1. http://www.liferay.com/web/guest/community/forums/-/message_boards/message/769405;jsessionid=1B48FB7B19DE2F6669A4CB44C5500AC6

2. http://wiki.liferay.com/index.php/Liferay_with_EJB3_and_JBoss%2C

Marcas y derechos


Liferay ®, Liferay Portal son marcas registradas de Liferay Inc.
JBoss ®es una marca registrada de Red Hat Inc.
Java ®es una marca registrada de Sun Microsystems
Linux ®es una marca registrada de Linus Torvalds.