Desarrollo de un Portlet con Framework Spring

1.         CREACION DE UN PORTLET EN ECLIPSE

 

Para la creación de un Portlet en eclipse para ejecutarlo en el entorno del portal Liferay se realiza lo siguiente: Abrir el Eclipse

 

 

Se abrirá una nueva ventana donde se dará el nombre del Proyecto: “urbana-spring” y el tipo de plugin, en este caso un Portlet. Presionamos Finalizar.

 

 

1.1          ANATOMIA DE UN PORTLET LIFERAY

 

Después de la creación del Portlet, se generan unas carpetas y archivos automáticamente. El código fuente de Java se almacena en la raíz del documento docroot/WEB-INF/src.

 

Los archivos de configuración se guardan en la carpeta WEB-INF. Dentro de esta carpeta se encuentran tres archivos de Liferay que son opciones, pero son importantes si los Portlets se van a ejecutar en un servidor de Liferay.

 

  • liferay-display.xml: Este archivo describe la categoría donde el Portlet debe aparecer en el menú Agregar del portal (la barra horizontal que aparece en la parte superior de la página para todos los usuarios registrados). [1]
  • liferay-portlet.xml: Este archivo describe algunas mejoras opcionales. Por ejemplo, puede establecer si un Portlet es instanceable, lo que significa que puede colocar más de una instancia del Portlet en una página, y cada uno tendrá sus datos por separado. [1]
  • liferay-plugin-package.properties: Una de las cosas que se pueden configurar en este archivo es la dependencia. Si un Portlet plugin tiene dependencias en particular, archivos jar. [1]

 

 

Los archivos del lado del cliente son los .jsp, CSS y JavaScript archivos que se escriben para implementar la interfaz del Portlet. Estos archivos deben ir en la carpeta raíz de documento en algún lugar, ya sea en la raíz de la carpeta o en una estructura de carpetas de su gusto. Cualquier código HTML que se defina en el proyecto debe estar libre de marcas globales como <html> o <head>. Además, todas las clases CSS y los identificadores de elemento debe ser namespaces para evitar conflictos con otros Portlets. Liferay proporciona herramientas (métodos taglibs y API) para generar el espacio de nombres que usted debe utilizar. [1]

 

  • xml: en este fichero se definen las características del Portlet: cuál es su ID, que modos de trabajo va a tener, cuál va a ser el fichero de internacionalización etc. y sobre todo que clase se va a encargar de implementar la lógica del Portlet. [2]

2.         ADAPTACION DEL PORTLET CON EL FRAMEWORK SPRING PORTLET MVC

 

Después de haber creado el Portlet vamos a adaptarlo para que trabaje con el framework Spring MVC, se deben seguir los siguientes pasos:

 

Paso 1: Editar el fichero web.xml del proyecto para integrar el desarrollo del Portlet con Spring MVC Portlet, de tal modo que se deben añadir los siguientes elementos:

 

 

En primer lugar se define el parámetro contextConfigLocation para establecer donde vamos a almacenar el fichero de configuración de Spring de nuestro proyecto, en este caso será dentro de la carpeta WEB-INF/context con el nombre applicationContext.xml, que se creara en el siguiente. Luego se crea el listener y el servlet necesarios para trabajar con Spring MVC.

 

Paso 2: Crear la carpeta “context/” bajo docroot à WEB INF. En esta carpeta se creara el archivo “applicationContext.xml”, donde se determina el comportamiento de Spring dentro del proyecto.

 

 

En el archivo determina que se utilizaran anotaciones y que Spring tiene que comenzar a escanear cuando tenga que localizar un bean, a partir de la ruta del paquete que se establezca en el valor base-package.

 

Paso 3: Modificar el fichero “Portlet.xml”. En este fichero se definen las características del Portlet: cuál es su ID, nombre, cuál va a ser el fichero de internacionalización y sobre todo que clase se va a encargar de implementar la lógica del Portlet.

 

En este caso, todo va a ser igual, sólo que la clase encargada de implementar el Portlet siempre va a ser la misma org.springframework.web.portlet.DispatcherPortlet que requiere la inicialización del parámetro contextConfigurationLocation con la ruta del fichero de Spring que se va a encargar de manejar nuestro Portlet.

 

 

 

Paso 4: Crear la carpeta “context/portlet” bajo docroot à WEB INF. En esta carpeta se creara el archivo “urbanalab-portlet.xml”. Este es el archivo de configuración de Spring para el Portlet. La información más importante de este archivo es qué controlador se va a encargar de manejar las peticiones y cómo se va a mostrar la vista. En este caso va a tener un controlador para todas las peticiones que se realicen en el estado de la vista del Portlet y va mostrar el contenido a través de páginas JSP.

 

 

 

Paso 5: Para la creación del controlador se utiliza la convención frente a la configuración del archivo urbanalab-Portlet.xml por lo que se creara una clase controladora que el id del bean haga referencia en la entrada key="view". (Salvo empezando con mayúsculas)

 

Por lo tanto vamos a crear la clase ControladorUrbanalab.java dentro de un paquete que este en el alcance del escaneado de Spring, por ejemplo, com.urbanalab.controladores con el siguiente contenido:

 

Nota: Aparecerán líneas de errores, pero eso se soluciona más adelante al agregar las librerías de Spring

 

Paso 6: Crear la carpeta “jsp” bajo docroot à WEB INF. En esta carpeta se creara el archivo “view.jsp” es la vista que se mostrara por defecto en el Portlet. Por tanto se debe crear este fichero dentro de la ruta configurada en el ViewResolver dentro del archivo urbanalab-portlet.xml.

 

 

 

Paso 7: Crear la carpeta “lib” sino existe bajo docroot à WEB INF. Dentro de esa carpeta incluir los .jar del Framework Spring MVC. Estas librerías se pueden descargas desde el sitio web oficial [3]

 

 

 

Paso 8: Esta configuración es opcional, para determinar en que categoría estará el Portlet desde el portal Liferay al momento de ser agregado. Por defecto cada Portlet que se cree estará dentro de la categoría Samples / Ejemplos. Para cambiar la categoría del Portlet se debe editar el fichero “liferay-display.xml”. En este ejemplo el Portlet quedara dentro de la categoría [email protected]

 

 

 

Paso 9: Ejecutar el Portlet dentro del servidor de Liferay.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3.         REFERENCIAS BIBLIOGRÁFICAS

 

[1] Liferay Enterprise Open Source For Life, Sitio web [En Línea] Disponible desde http://www.liferay.com/es/documentation/liferay-portal/6.0/development/-/ai/portlet-development [Accedido en Febrero de 2011].

 

[2] Adictos al Trabajo Sitio web [En Línea] Disponible desde http://www.adictosaltrabajo.com   [Accedido en Marzo de 2011].

 

[3] Spring Sources Download, Sitio Web [En Línea] Disponible desde http://www.springsource.org/download [Accedido en Marzo de 2011]