71
JBoss Portal 2.6.1GA “Ninja” Curso Práctico Desarrollo de Portlets para JBoss Portal [email protected] [email protected] Neodoo Microsystems S.L. www.neodoo.es

JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Embed Size (px)

DESCRIPTION

JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja” es un curso en español para introducir la tecnología utilizada en el producto JBoss Portal así como la especificación de los Portlets para el desarrollo de portales

Citation preview

Page 1: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

JBoss Portal 2.6.1GA “Ninja”

Curso Práctico Desarrollo de Portlets para JBoss Portal

[email protected]@neodoo.es

Neodoo Microsystems S.L.www.neodoo.es

Page 2: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

¿Qué es JNDI?

Page 3: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Recordemos...Hay determinadas acciones asociadas a las páginas web que en caso de tardar excesivo tiempo, darán un 

timeout en el navegador del cliente.

Por regla general, suelen ser tareas que tardan más tiempo que el timeout definido en el navegador por lo que la petición es detenida.

En la aplicación CaJBPortalWeb, existen tareas que se pueden ejecutar en paralelo, es decir, dejar la tarea en background para que el servidor la ejecute cuando pueda. El cliente recibirá directamente la siguiente página y se le informará que en el menor tiempo posible se efectuará la labor solicitada:

Ejemplo aplicaciones:

Creación del PDF del listado de clientes.

Envío de email para recordar password.

Page 4: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

¿Qué es JMS?Mensajería es un método de comunicación entre componentes software o aplicaciones.

Java Message Service (JSR 914) es un API estándar de mensajería que nos permite la comunicación confiable entre diferentes partes.

JMS fue desarrollado por Sun para poder ofrecer a los programadores Java acceso a los Sistemas de Mensajería Empresariales (Enterprise Messaging Systems), también conocidos como Message Oriented Middleware (MOM).

Los MOM's proporcionan:

mecanismos débilmente dependientes para la integración de aplicaciones

envío asíncrono de datos entre aplicaciones (intermediario)

libera de RPC y protocolos de red y de comunicaciones

Mensajería asíncrona significa que el emisor del mensaje puede continuar con otras tareas después del envío del mensaje sin tener que esperar a la recepción del mismo.

Page 5: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Arquitectura JMS

Page 6: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Modelos de Comunicación (I)Existen dos modelos de comunicación con JMS:

PuntoaPunto (P2P): la comunicación se produce entre una aplicación y otra sin involucrar a ninguna otra parte que reciba la información. Por ejemplo, una aplicación de un Centro de Atención al Cliente, una llamada de un cliente entra en una cola y la operadora la atiende.

Publicar / Suscribir (P/S): es el modelo de comunicación utilizado cuando queremos que muchas aplicaciones reciban el mismo mensaje a la vez. Puede ser que muchas quieran enviar y muchas quieran recibir los mensajes. Por ejemplo un chat.

Page 7: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Modelos de Comunicación (II)

Punto a Punto:

Page 8: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Modelos de Comunicación (III)

Publicar / Suscribir

Page 9: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

Modelo de Programación JMS

Page 10: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Volvamos a recordar...En el caso de CaJBPortalWebCaJBPortalWeb y por el hecho de usar servicios de mensajería asíncrona, Apache Tomcat se 

queda 'pequeño' puesto que no dispone de este servicio.

Es necesario utilizar de forma complementaria el sistema de mensajería JMS a través de otro servidor de aplicaciones, en nuestro caso, JBoss Application Server.

Según la distribución de los elementos de la arquitectura J2EE, podemos emplear Apache Tomcat de forma aislada o el que viene integrado en JBoss AS.

Page 11: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación binarioLa instalación del servidor de aplicaciones JBoss es bastante sencilla:

Nos bajamos la distribución binaria de la versión 4.0.5 GA del servidor:

http://labs.jboss.com/jbossas/downloads

Establecemos la variable de entorno JBOSS_HOME en el directorio en el que hayamos descomprimido el fichero .zip.

Creamos una nueva configuración para poder trabajar con las mismas características que default, en nuestro caso denominaremos a la nueva configuración curso_portal y a partir de este momento trabajaremos en todo momento con esta configuración.

Arrancamos JBoss AS con la configuración curso_portal.

$ JBOSS_HOME/bin/run.sh -c curso_portal

Si queremos para el servidor tendremos que ejecutar:

$ JBOSS_HOME/bin/shutdown.sh -S

Page 12: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación EJB 3.0Dependiendo de la versión de JBoss AS que utilicemos no tendremos soporte para EJB 3.0 por lo que 

señalaremos los pasos que seguiremos para poder dar soporte a este tipo de componentes. La versión 4.0.5 GA de JBoss no viene con el contenedor de EJB3 instalado.

Lo primero que tendremos que hacer será bajarnos el parche EJB3 RC9 Patch 1 de esta URL y descromprimirlo en cualquier directorio: 

http://labs.jboss.com/jbossejb3/downloads 

Para instalar el parche simplemente tenemos que realizar los siguientes pasos:

cd jboss-EJB-3.0_RC9_Patch1

ant -f install.xml -Djboss.server.config=curso_portal

La variable $JBOSS_HOME indica el directorio donde tenemos instalado la versión de nuestro servidor JBoss.

Page 13: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (I)Bajar el software para instalar JBoss AS de http://labs.jboss.com/jemsinstaller/

Ejecutamos: java jar jemsinstaller1.2.0.GA.jar y aparecerá el siguiente cuadro, después de seleccionar el idioma de la instalación.

Page 14: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (II)

Page 15: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (III)

Page 16: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (IV)

Page 17: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (V)

Page 18: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (VI)

Page 19: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (VII)

Page 20: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Instalación instalador (VIII)

Page 21: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Arquitectura JMX

Page 22: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Interceptores e invocadores

Page 23: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Interceptores Cliente

Page 24: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss AS: Descripción completa

Page 25: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBossMQJBossMQ es una implementación de la API Java Message Service (parte de la J2EE), que viene con el servidor 

de aplicaciones JBoss. 

Permite el envío asíncrono de mensajes en sistemas distribuidos con posibilidad de utilizar parámetros de QoS, como por ejemplo, persistencia, garantía de entrega o transacciones.

JBoss AS 4.0.5 es compatible con la versión 1.1 de la especificación JMS. Esta especificación incluye un modelo combinado de conexiones Queue/Topic que puede utilizar los dos modelos de comunicación.

Para versiones futuras de JBoss este servicio se pasará a llamar JBossMessaging.

Page 26: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Modelos de Comunicación JBossMQ

Page 27: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: JEMSJBoss Portal está basado en JEMS (JBoss Enterprise Middleware Systems)

Como la gran mayoría de servicios que componen JBoss, JBoss Portal trabaja en colaboración de otros servicios para realizar su tarea, estos servicios son los siguientes:

Page 28: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Instalación (I)Una vez instalado el servidor de aplicaciones nos bajaremos la versión 2.6RC3 de JBoss Portal de la siguiente 

página:

http://labs.jboss.com/jbossportal/download/index.html

Descomprimir el fichero .zip en un directorio y copiar el directorio  jbossportal.sarjbossportal.sar al destino $JBOSS_HOME/server/curso_portal/deploy/

Configurar el DataSource utilizado, copiar portaloracleds.xmlportaloracleds.xml a $JBOSS_HOME/server/curso_portal/deploy/

Desplegar el conector JDBC necesario para nuestro DataSource, en este caso será el fichero ojdbc14.jarojdbc14.jar, dentro del directorio $JBOSS_HOME/server/curso_portal/lib

Arrancar el servidor JBoss AS y después introducir en el navegador la siguiente URL:

http://localhost:8080/portal/index.html

Page 29: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Instalación (II)

Page 30: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Conceptos previos (I)Las empresas punteras tienden a mejorar la productividad y reducir costes desarrollando portales empresariales.

Un portal es un sitio web cuyo objetivo es ofrecer al usuario, de una manera fácil e integrada, una serie de recursos y servicios, tales como envío de correo electrónico, foros, motores de búsqueda...

Los portales empresariales simplifican el acceso a la información proporcionando una única fuente de interacción con la información corporativa.

JBoss Portal es la solución opensource ofrecida por la empresa Red Hat JBoss para la gestión y el desarrollo de portales empresariales.

Dentro de JBoss Portal podemos ver un portal como un conjunto de páginas con diferentes áreas, y dentro de cada área diferentes ventanas, y en cada ventana un portlet.

Un portlet es un componente web gestionado por un contenedor, en nuestro caso JBoss Portal, que tras la petición de un usuario generan y presentan contenidos dinámicos de forma identificable en el interfaz de usuario del portal como componentes de contenido.

Page 31: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Conceptos previos (II)La jerarquía de objetos pertenecientes a un portal está representada por el siguiente árbol:

Page 32: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Conceptos previos (III)

JBoss Portal puede soportar múltiples instancias de portales ejecutándose en un único contenedor, una instancia de un portal puede definirse como un recipiente de objetos del portal, tales como, páginas, temas, distribuciones (layouts) y ventanas. Además también gestiona la relación entre el usuario y el portal.

Para acceder a una instancia de portal deberemos utilizar una URL del tipo:

http://[domain]/[context]/portal/[portal_name]

Así http://localhost:8080/portal/portal/default accederá a la instancia de portal default.

Páginas del portal son generadas durante la fase de respuesta por el portal, en esta fase el portal introduce el marcado HTML para generar los portlets que contiene la página, junto con los controles de dichos portlets. En la instalación por defecto tenemos las siguientes páginas:

Para acceder a las páginas utilizaremos una URL como esta o seleccionando las pestañas representadas en la figura anterior:

http://[domain]/[context]/portal/[portal_name]/[page_name]

Page 33: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Conceptos previos (IV)

Ventana de un portlet: se basan en las páginas del portal y contienen el marcado HTML para un instancia concreta de un portlet.

Título de la ventana: define el contenido y propósito de la ventana del portlet

Fragmento de ventana: representa el marcado HTML producido por el portlet en el lado del servidor.

Controles de ventana: se dividen en dos categorías: Estado de ventana y Modo del Portlet.

Estados de ventana:

Normal

Minimizado

Maximizado

Modos de ventana:

Cancelar / Ver: visualiza el estado actual de la ventana del portlet

Editar: permite a un usuario personalizar el comportamiento del portlet

Ayudar: en este modo el portlet proporcionaría ayuda al usuario. 

Page 34: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Conceptos previos (V)Hemos utilizado el User PortletUser Portlet, antes de acceder con algún usuario al sistema para representar las partes de las 

que consta:

Page 35: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Gestión de Objetos (I)Dinamicidad (DinamicityDinamicity) significa que todos los objetos que forman parte de un portal se pueden modificar 

dinámicamente en tiempo de ejecución, sin necesidad de volver a comenzar el servidor para que los cambios tengan efecto.

Para poder realizar la gestión de los objetos utilizaremos el portlet titulado Management Portlet que se encuentra dentro del Admin Portal, al que únicamente es posible acceder si entramos como usuario admin. El Management Portlet tiene este aspecto:

Page 36: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Gestión de Objetos (II)

Gestionar instancias de portales: los administradores podrían gestionar el portal, las páginas, subpáginas y ventanas en cualquier momento, las acciones principales que podemos realizar en una instancia de un portal son:

Proteger la instancia: Al seleccionar la opción Security permite al administrador configurar la seguridad relativa a un portal para el role que queramos. Las configuraciones de seguridad con las que contamos son:

view: los usuarios pertenecientes al role pueden ver el objeto

viewrecursive: pueden ver el objeto y sus objetos hijos

personalize: los usuarios son capaces de ver y personalizar el objeto

personalizerecursive: pueden ver y personalizar el objeto y sus objetos hijos

Editar propiedades: gracias al enlace Properties podremos modificar el comportamiento de la instancia cuando se produce algún error, tanto en una página como en un portal.

Modificar el Tema/Distribución (Layout): cuando elegimos la opción Theme podremos personalizar el aspecto que tienen los elementos dentro de la instancia que tenemos seleccionada.

Destruir: como es lógico también podemos destruir instancias de portales que ya no son necesarias.

Page 37: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Gestión de Objetos (III)

Gestionar portlets e instancias de portlets: dentro de las posibilidades que podemos encontrarnos a la hora de trabajar con instancias de portlets nos encontramos con la posibilidad de crear instancias de un portlet dado, modificar las propiedades de una instancia seleccionada.

Page 38: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Gestión del CMS (I)Para realizar la gestión del Content Management System, al igual que ocurre con cualquier operación de gestión es 

preciso que entremos como el usuario admin, y después seleccionemos la pestaña CMS que nos llevará a la página en la que encontramos el portlet CMS Administration, el cual nos proporcionará todas las opciones de las que disponemos para gestionar ficheros, y directorios. El portlet aparece con el siguiente aspecto:

Page 39: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Gestión del CMS (II)Dentro de las principales acciones que podemos realizar gracias al portlet de administración del CMS se 

encuentran las siguientes:

Creación de un directorio

Creación de un fichero

Ver ficheros y directorios

Copiar ficheros y directorios 

Mover ficheros y directorios

Eliminar ficheros y directorios

Subir un fichero

Exportar un directorio

Proteger el CMS

Page 40: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Usuarios y Roles (I)Para poder realizar funciones administrativas de los usuarios de nuestro sistema tenemos que entrar con un 

usuario con las acreditaciones adecuadas, en nuestro caso, el usuario adminadmin, después tendremos que seleccionar la pestaña de la página Members dentro del Admin PortalAdmin Portal.

En esta página observaremos dos portlets como los siguientes:

Page 41: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Usuarios y Roles (II)Gracias a los portlets vistos anteriormente las principales acciones que podremos realizar tanto sobre usuarios 

como sobre roles serán las siguientes:

Búsqueda de usuarios

Crear una cuenta usuarios

Editar el perfil de usuarios

Actualizar roles de un usuario

Crear roles

Editar roles

Editar los miembros de un role

Eliminar roles

Un role es usado para garantizar ciertos niveles de permisos para diferentes elementos como portlets, páginas, o instancias de portales.

Page 42: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Configuración de Eclipse (I)Para desarrollar nuestro primer portlet, utilizaremos el IDE Eclipse:

Eclipse SDK 3.3 JEE (o Eclipse Europa)

Disponible en: www.eclipse.org/downloads/

Seleccionar la opción Eclipse IDE for Java EE Developers.

 New > Project > Dynamic Web Project

Librerías utilizadas en un portlet básico: 

JBOSS_HOME/server/<CONF>/deploy/jboss-portal.sar/lib

portlet-api-lib.jar

En el interior de esta librería podemos encontrarnos las clases:

GenericPortlet

RenderRequest

RenderResponse, ...

Page 43: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Configuración de Eclipse (II)Instalación del plugin Subclipse, utilizado para 

trabajar con Subversion dentro de Eclipse

Desde Eclipse accediendo a Help > Software Updates > Find and Install... seleccionando Search for new features to install. Elegir New Remote Site...

Aceptamos la licencia y confirmamos la instalación en nuestra versión de Eclipse, presionamos Install All

Page 44: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   Window>Preferences>Server>Installed Runtimes

Configuración de Eclipse (III)Los servidores más comunes en las arquitecturas J2EE están embebidos en el IDE Eclipse por lo que es posible 

tanto visualizar las trazas de log como controlar el servidor. Configurar un servidor externo a Eclipse es la solución más adecuada para realizar depuraciones.

Page 45: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Generación Proyecto Nuevo (I)Desde el IDE Eclipse, ir a File > New... > Project y en la ventana 

seleccionar Web > Dynamic Web Project.

Crear un proyecto denominado SimplePortlet.

Context Root: : SimplePortlet, , Content Directory: WebContent y Java Source Directory: src

Librerías utilizadas en un portlet básico: 

JBOSS_HOME/server/<CONF>/deploy/jboss-portal.sar/lib

portlet-api-lib.jar

Botón derecho del ratón en el proyecto (Project Explorer) Build Path > Configure Build Path...

Seleccionar el tab Libraries y presionar el botón Add External JARs...

Cuando finalicemos de implementar el portlet, seleccionamos el nombre del proyecto presionamos el botón derecho Export > WAR file

Page 46: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Generación Proyecto Nuevo (II)Todos los proyectos de los portlets mostrados en la presentación estarán ubicados en un repositorio  local 

al que podremos acceder a través de Eclipse.

Es necesario instalar el plugin  Subclipse para tener soporte SVN (seguir las instrucciones de la ficha Configuración de Eclipse (II)Configuración de Eclipse (II))

Ir a File > New Project > SVN > Checkout Projects from SVN e introducir los datos del repositorio.

Nos podremos bajar las soluciones de los ejercicios propuestos.

Page 47: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

JBoss Portal: Implementación (I)Los portlets son empaquetados en ficheros con extensión .war, al igual que otras aplicaciones JEE. Un fichero 

war de un portlet típico puede contener servlets, resource bundles, imágenes, ficheros html, jsp's y otros ficheros estáticos o dinámicos.

Todos los portlets tienen que implementar el interface  javax.portlet.GenericPortletjavax.portlet.GenericPortlet.

Descriptores de Aplicación: JBoss Portal requiere que ciertos ficheros sean incluidos dentro del fichero war, algunos de estos descriptores están descritos por la especificación de los portlets, es decir, serán estándar para todas las implementaciones de contenedores de portlets y algunos son específicos de JBoss Portal, los ficheros descriptores son los siguientes:

portlet.xmlportlet.xml:

Define el nombre del portlet (portletnameportletname)

El nombre de la clase portlet debe estar declarado en este fichero (portletclassportletclass)

Los atributos de soporte son vitales y también están contenidos en el fichero (mimetypemimetype y portletmodeportletmode) todos los modos que queramos que soporte el portlet tienen que estar en este fichero, por ejemplo VIEW...

portletinstances.xmlportletinstances.xml: permite crear una instancia de un portlet.

*object.xml*object.xml: es responsable de la creación y configuración de ventanas, páginas, e incluso instancias de portales.

Page 48: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Simple (I)La estructura del paquete que contiene todo lo necesario para desarrollar un ejemplo de un portlet básico sería 

algo como esto:

Page 49: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Simple (II)Vamos a echarle un vistazo al fuente que implementa el portlet:

Page 50: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Simple (III)Ficheros descriptores dentro de nuestro portlet básico:

simpleobject.xml (3)simpleobject.xml (3)

portlet.xml (1)portlet.xml (1)

portletinstances.xml (2)portletinstances.xml (2)

Page 51: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Simple (IV)El hecho de que tengamos varios ficheros descriptores de la aplicación hace que tengan que haber alguna 

relación entre ellos, lo más destacado es que el valor de la etiqueta portletrefportletref del fichero portletinstances.xmlportletinstances.xml tiene que coincidir con el valor de la etiqueta portletnameportletname del fichero portlet.xml.portlet.xml.

Además el valor del elemento  instanceidinstanceid del fichero portletinstances.xml portletinstances.xml tiene que coincidir con el valor del elemento con la etiqueta  instancerefinstanceref del fichero *object.xml.*object.xml.

Uno de los puntos importantes dentro del desarrollo es cómo desplegar nuestro portlet dentro del servidor de aplicaciones que estamos utilizando, desplegar un portlet es tan simple como copiar el fichero .war en el directorio deploy de nuestro servidor.

....

Para eliminar el portlet del portlet simplemente tendremos que eliminar el fichero .war del directorio dentro del cual lo hemos desplegado.

Page 52: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Simple (V)Una vez realizado el despliegue del portlet solamente nos resta con ver el resultado dentro de Jboss Portal.

Aspecto del portlet en modo VIEW (vista):

Aspecto del portlet en modo HELP (ayuda):

Page 53: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Servlet (I)SimpleServletPorlet.warSimpleServletPorlet.war, y contenido del proyecto en Eclipse:

Page 54: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Servlet (II)Fichero de implementación con servlets de nuestro portlet básico:

Page 55: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Servlet (III)Aquí tenemos la implementación del servlet GetDateServletGetDateServlet que tiene la misma funcionalidad que el portlet básico:

Page 56: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Servlet (IV)Fichero web.xmlweb.xml del proyecto SimpleServletPortletSimpleServletPortlet:

Page 57: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet Servlet (V)Esto es lo que aparecerá como salida del servidor tras el despliegue y visualización del portletservlet, la primera 

secuencia aparece cuando visualizamos el portlet por primera vez.

Esta otra secuencia aparecerá cuando seleccionamos el modo HELP dentro del portlet:

Page 58: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSP(I)Después de haber visto un ejemplo de un portlet simple es momento de pasar al desarrollo de un portlet que 

utilizará ficheros JSP para el renderizado de la vista, junto con la librería de etiquetas de portlets para la generación de enlaces.

Una de las cosas más importantes dentro de este ejemplo son las dos vistas jsp's. La primera vista permite al usuario introducir su nombre que es pasado al método processActionprocessAction dentro de nuestro portlet, puesto como renderParameterrenderParameter al método doView, el cual lo envía a la segunda vista.

Page 59: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSP (II)La estructura del 

paquete que contiene todo lo necesario para desarrollar un ejemplo de un portlet con jsp's sería algo como esto:

Page 60: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSP (III)Esta es la clase que implementa 

el portlet del proyecto SimpleJSPPortletSimpleJSPPortlet:

Page 61: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSP (IV)El fichero JSP más complejo de los que tenemos dentro del proyecto SimpleJSPPortlet es:

Page 62: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSF(I)Una vez finalizado el ejemplo de portlets con JSP el siguiente paso será utilizar la framework JSF en nuestro 

desarrollo con portlets.

Un detalle a tener en cuenta en este tipo de desarrollos es que dentro del fichero .war que almacena el portlet tenemos que empaquetar el fichero facesconfig.xmlfacesconfig.xml que como sabemos será utilizado para definir los managedbeansmanagedbeans, conversoresconversores, validadoresvalidadores, reglas de navegaciónreglas de navegación, ...

Es preciso notar que cuando despleguemos en JBoss AS nuestro desarrollo no será necesario empaquetar la librería myfaces con nuestra aplicación, esto es así ya que JBoss tiene unas librerías propias en <JBOSS_HOME>/server/default/deploy/jbosswebtomcat55.sar/jsflibs/<JBOSS_HOME>/server/default/deploy/jbosswebtomcat55.sar/jsflibs/

Page 63: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSF(II)La estructura del paquete 

que contiene todo lo necesario para desarrollar un ejemplo de un portlet utilizando la framework JSF sería algo como lo siguiente:

Page 64: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSF(III)Fichero portlet.xmlportlet.xml del proyecto SimpleJSFPortletSimpleJSFPortlet:

Page 65: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSF(IV)Fichero facesconfig.xmlfacesconfig.xml del proyecto SimpleJSFPortletSimpleJSFPortlet:

Page 66: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Implementación: Portlet JSF(V)Una vez desplegado dentro de Jboss Portal el proyecto SimpleJSFPortlet SimpleJSFPortlet si todo ha ido bien obtendremos la 

siguiente salida:

Page 67: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Proyectos Software NecesariosDescargamos los siguientes proyectos para insertar las librerías necesarias en nuestro desarrollo web:

Añadir el driver JDBC de la base de datos (en nuestro caso Oracle XE) si no está ya en el servidor de aplicaciones, en el CLASSPATH del sistema o <JAVA_HOME>/jre/lib/ext. El conector JDBC aparece dentro del directorio <ORACLE_HOME>/jdbc/lib/.

Implementación JavaServer Faces (Elegir una de las dos):

MyFaces (Apache): MyFaces Core 1.1.5 Distributions de http://myfaces.apache.org/download.html

JSF RI (Sun): Descargar de https://javaserverfaces.dev.java.net

Descargar las Jarkarta Taglibs http://www.apache.org/dist/jakarta/taglibs/standard/

Añadir al proyecto standard.jar (Es una implementación Open Source de JSP Standard Tag Library (JSTL), versión 1.1.2). 

Page 68: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Bibliografía

JMS  http://en.wikipedia.org/wiki/Java_Message_Service

Oracle 10g XE Documentation  http://www.oracle.com/pls/xe102/homepage

RSS  http://en.wikipedia.org/wiki/RSS

Data Access Object  http://es.wikipedia.org/wiki/Data_Access_Object

Etiquetas HTML en JSF  http://www.exadel.com/tutorial/jsf/jsftagsguide.html

Page 69: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Glosario (I)

JMS: Java Message Service

MOM: Message Oriented Middleware, Enterprise Messaging Systems

JSR: Java Specification Request

JCP: Java Community Process

JNDI: Java Naming and Directory Interface

J2EE: Java Enterprise Edition

JVM: Java Virtual Machine

QoS: Quality of Service

Page 70: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Glosario (II)JMX: Java Management Extensions

WSRP: Web Services for Remote Portlets

CMS: Content Management System

RSS (v 2.0): Really Simply Sindication

*.WAR: Web Application Archive

*.SAR: Service Archive

*.EAR: Enterprise Archive

*.HAR: Hibernate Archive

LDAP: Lightweight Directory Access Protocol

Page 71: JBoss AS: Desarrollo con JBoss Portal 2.6.1GA “Ninja”

   

Glosario (III)

RPC: Remote Procedure Call