Integrar Liferay Portal 5.2.1 con Pentaho BI 2.0.0 sobre MySQL 5.1
- Integrar Liferay Portal 5.2.1 con Pentaho BI 2.0.0 sobre MySQL 5.1
Introducción
En este tutorial vamos a mostrar paso a paso cómo integrar con éxito el gestor de portales Liferay Portal 5.2.1 con la herramienta de Business Intelligence Pentaho BI 2.0.0, en un servidor Apache Tomcat 5.5 y configurando para todo ello una base de datos MySQL 5.1.
Algunos tutoriales relacionados, publicados hasta la fecha:
- Primeros Pasos con Liferay 5.2.1
- Introducción a la gestión de contenidos en Java con Liferay
- Instalación de Pentaho BI Suite Community Edition 1.7.0
- Instalación de MySQL 5.1 en Windows
Preparación del entorno
El software utilizado en este tutorial es:
- liferay-portal-tomcat-5.5-5.2.1.zip, que podemos descargar desde http://sourceforge.net/project/showfiles.php?group_id=49260&package_id=42607&release_id=658327
- MySQL Server 5.1 versión Windows MSI Installer (x86), disponible en: http://dev.mysql.com/downloads/mysql/5.1.html#win32
- MySQL GUI Tools versión Windows (x86): http://dev.mysql.com/downloads/gui-tools/5.0.html
- Sun Java JDK 1.5.0_16, que podemos descargar desde http://java.sun.com/javase/downloads/index_jdk5.jsp
- Apache Ant 1.7.0, distribución (apache-ant-1.7.0-bin.zip), disponible en http://archive.apache.org/dist/ant/binaries/
- Tortoise SVN 1.5.3, disponible en http://tortoisesvn.net/downloads
La plataforma de ejecución está basada en:
- Pc portátil C2Duo, 1.5GHz, 3GB Ram
- Windows Vista Home Premium SP1
Con las versiones de software antes indicadas, se asegura el correcto funcionamiento de este tutorial. Los usuarios con experiencia pueden intentar la integración con versiones diferentes.
Paso 1. Instalación de Liferay 5.2.1
Para ello seguimos el tutorial de Rubén: Primeros Pasos con Liferay 5.2.1 (manteniendo el puerto 8080). Al finalizar, detenemos el servidor.
Paso 2. Instalación de Pentaho BI 2.0.0
Vamos a compilar nuestra propia distribución de Pentaho para Tomcat y MySQL. Para ello:
Paso 2.1. Descarga del código fuente de Pentaho BI
Utilizando un cliente SVN, por ejemplo Tortoise, accedemos a svn://source.pentaho.org/svnroot
Árbol de carpetas del repositorio de código SVN de Pentaho
y hacemos checkout del código en un directorio (que denominaremos %PENTAHO_SRC% y será C:\Tutoriales\pentaho2.0.0):
- svn://source.pentaho.org/svnroot/legacy/pentaho/branches/liferay-demo en %PENTAHO_SRC%\liferay-demo
- svn://source.pentaho.org/svnroot/legacy/pentaho-preconfiguredinstall/trunk en %PENTAHO_SRC%\pentaho-preconfiguredinstall
- svn://source.pentaho.org/svnroot/legacy/pentaho-solutions/trunk en %PENTAHO_SRC%\pentaho-solutions
- svn://source.pentaho.org/svnroot/legacy/pentaho-data/trunk en %PENTAHO_SRC%\pentaho-data
Checkout del código de pentaho-solutions
Paso 2.2. Compilar Pentaho BI
En primer lugar establecemos la ruta absoluta de nuestro compilador de java en el fichero %PENTAHO_SRC%\liferay-demo\build.properties. Cambiamos:
# override this dir with the real location of your compiler javac.path=javac.path not set
por:
# override this dir with the real location of your compiler javac.path=C:/Herramientas/Java/jdk1.5.0_16/bin/javac
A continuación accedemos por línea de comandos al directorio %PENTAHO_SRC%\liferay-demo y ejecutamos el comando:
ant war-all-pentaho-tomcat
Dejo en este fichero: log_ant_pentaho.txt el resultado de la compilación a modo de ejemplo. Veremos que ha generado diversos ensamblados war bajo el directorio %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\tomcat, uno por cada tipo de bases de datos HSQLDB, MySQL5, Oracle10G y PostgreSQL. En este tutorial utilizamos el de MySQL.
Paso 2.3. Preparar la base de datos y los datasources
Para crear los usuarios, los esquemas y las tablas para el funcionamiento de Pentaho, así como para poblarlas con un conjunto inicial de datos, lanzaremos el siguiente script iniciando una sesión en MySQL con el usuario root:
%PENTAHO_SRC%\pentaho-data\mysql5\SampleDataDump_MySql.sql
Mediante las MySQL GUI Tools podemos observar que se han creado:
- Los usuarios pentaho_admin y pentaho_user:
- Los esquemas sampledata, quartz e hibernate:
A continuación definimos las fuentes de datos en el servidor para que Pentaho disponga de ella como repositorio. Editamos %LIFERAY_TOMCAT_HOME%\conf\server.xml y añadimos entre las etiquetas <Host></Host>:
<Context path="/pentaho" docbase="webapps/pentaho/"> <Resource name="jdbc/SampleData" auth="Container"type
="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user" password="password" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/sampledata?autoReconnect=true" />
<Resource name="jdbc/Hibernate" auth="Container"type
="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000" username="hibuser" password="password" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/hibernate?autoReconnect=true" />
<Resource name="jdbc/Quartz" auth="Container"type
="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_user" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz?autoReconnect=true"/>
<Resource name="jdbc/SampleDataAdmin" auth="Container"type
="javax.sql.DataSource" maxActive="20" maxIdle="5" maxWait="10000" username="pentaho_admin" password="password" factory="org.apache.commons.dbcp.BasicDataSourceFactory" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/sampledata?autoReconnect=true" />
</Context>
Paso 2.4. Desplegar Pentaho BI en el servidor
Realizamos los siguientes pasos para el despliegue manual de Pentaho:
- Copiar el directorio %PENTAHO_SRC%\pentaho-solutions en %LIFERAY_TOMCAT_HOME% (pentaho-solutions y webapps serán carpetas hermanas). Esta operación se debe a que pentaho-solutions es requisito para Pentaho, como se define en las líneas 7-10 del web.xml del pentaho.war generado:
<context-param> <param-name>solution-path</param-name> <param-value>pentaho-solutions</param-value> </context-param>
- Copiamos %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\pentaho-portal-layout.war, pentaho-style.war y sw-style.war en %LIFERAY_TOMCAT_HOME%\..\deploy\
- Copiamos %PENTAHO_SRC%\liferay-demo\build\pentaho-wars\tomcat\mysql5\pentaho.war en %LIFERAY_TOMCAT_HOME%\..\deploy\
Levantamos el servidor y en la consola veremos las trazas de carga de base de datos y despliegue de Pentaho. Aparecerán muchas de error, puesto que los ensamblados anteriores tienen interdependencias en la definición de datasources.
Una vez levantado el servidor Tomcat (se abrirá un navegador con Liferay), comenzará el despliegue de los war de Pentaho
El depliegue de Pentaho tardará unos 5 minutos (se verá la traza «Pentaho BI Server Listo.«). Detenermos el servidor Tomcat, y volvermos a iniciarlo. No aparecerá ahora ningún volcado de pila de error, y ahora sí que estará completa y correctamente desplegado Pentaho. Vamos a comprobarlo.
Paso 3. Probando la integración
Accedemos a la pantalla de login de Liferay en http://localhost:8080 (si no estamos ya), y accedemos con el usuario Bruno. En el deplegable superior derecho añadimos nueva aplicación:
Agregar aplicación en Liferay
En el panel flotante que se instancia, aparecerá Pentaho como una aplicación más. Deplegando el árbol, accedemos a sus portlets:
Desplegable con portlets de Pentaho disponibles desde Liferay
Pulsamos sobre Add del GettingStartedExamplesPortlet y, tras unos instantes de carga (aparecerán numerosas trazas en la ventana de Tomcat), veremos el portlet embebido en Liferay:
Portlet con características básicas de Pentaho
donde podremos realizar acciones varias con Pentaho, como comprobar la integración mediante el tradicional saludo Hola Mundo:
¡Integración de Liferay con Pentaho conseguida!
Podemos también probar la capacidad de envío de correo electrónico (configurando debidamente los parámetros de SMTP en email_config.xml), o ver unos datos de ejemplo almacenados en base de datos (comprobamos así la concetividad con el repositorio en MySQL):
Regiones obtenidas de sampledata.department_managers
Conclusión
Con este tutorial hemos logrado integrar los portlets de Pentaho en Liferay, y vemos que el lanzamiento de las acciones del primero se instancian en una pestaña nueva del navegador web, y que requiere de un inicio de sesión propio. Para mejorar éste y otros aspectos, así como la ejecución de ciertas aplicaciones, será necesaria ya una configuración a medida de las necesidades que nos vayan surgiendo.
Hola, no entiendo bien el paso 2.4. He copiado la carpeta \\\»pentaho-solutions\\\» en ….\\\\liferay-portal-5.2.1\\\\tomcat-6.0.18\\\\ (en el mismo lugar donde está la carpeta \\\»webapps\\\»).–> Es ahí donde hay que copiarla?
Y donde hay que copiar los war?
Si los copio en ….\\\\liferay-portal-5.2.3\\\\deploy cuando arranco el Tomcat, y se me abre el portal, cuando me voy a \\\»Aplicaciones\\\», no me sale ninguna carpeta \\\»Pentaho\\\», solo una llamada \\\»Undefined\\\» con tres iconos dentro (las 3 carpetas de las war de pentaho generadas, pentaho-portal-layout, pentaho-style y sw-style)
No me sale lo que se ve en el paso 3.
Alguien me puede decir que estoy haciendo mal?. Se lo agradecería mucho.
Hola,
muy bueno el tutorial. Quería preguntaros, ¿es posible integrar pentaho en Liferay 6.1? Nosotros lo hemos intentado durante semanas sin éxito.
Cualquier ayuda/guia/consejo será bienvenido.
Gracias!!!
Buenos días ,
Primero que todo felicitarle por el tutorial, esta muy completo en su descripción.
en algun momento se presenta este error:
ERROR 1067 (42000) at line 391: Invalid default value for ‘REQUIREDDATE’
es al momento de ejecutar el SampleDataDump_MySql.sql
Saludos