gentoo linux, java, software libre y otras hierbas
nov, 06 2009 - 3:14 am

JBoss Seam Framework + Laboratorio de iniciación

Seam es un proyecto desarrollado por JBoss, cuyo lider es Gavin King. Es un completo framework para la creación de aplicaciones web 2.0 que unifica varias tecnologías como AJAX, Enterprise Java Beans (EJB3), Java Server Faces (JSF), Java Portlets and Business Process Management (BPM), Hibernate, y mucho más.

De la Wikipedia:

Seam introduce el concepto de contextos. Cada componente de Seam existe dentro de un contexto. El contexto conversacional por ejemplo captura todas las acciones del usuario hasta que éste sale del sistema o cierra el navegador – inclusive puede llevar un control de múltiples pestañas y mantiene un comportamiento consistente cuando se usa el botón de regresar de el navegador.

Tú puedes automáticamente generar una aplicación web de altas, bajas, cambio y modificaciones a partir de una base de datos existente utilizando una herramienta de linea de comandos llamada seam-gen incluida con el framework.

El desarrollo WYSIWYG es facilitado a través del uso de las JBoss Tools, que es un conjunto de plug-ins diseñados para el entorno integrado de desarrollo Eclipse. Seam puede ser integrado con las bibliotecas de componentes JSF JBoss RichFaces o con ICEsoft ICEFaces. Ambas bibliotecas poseen soporte para AJAX.

Actualmente soporta varios contenedores de aplicaciones como JBoss 4 o 5, IBM Websphere, BEA WebLogic, Oracle OC4J y por supuesto Apache Tomcat.

Puedes encontrar ejemplos de proyectos creados con seam y listos para ejecutar dentro del directorio examples de la aplicación.

Referencias y documentación:

Laboratorio de JBoss Seam Framework

Con el siguiente laboratorio se pretende dar un punto de partida a la creación de aplicaciones usando Seam. El laboratorio está enfocado al desarrollo sobre Eclipse, que es el IDE que recomiendo para trabajar con Seam.

Este laboratorio está enfocado al uso de Seam para JBoss, aunque con pocas o sin modificaciones puede funcionar en Apache Tomcat. Recordemos además que Seam también soporta los contenedores IBM Websphere, BEA WebLogic y Oracle OC4J.

Nota: todas las pruebas se realizaron sobre Linux (Gentoo amd64) y OpenSolaris 9.6. Sin embargo, hacerlo en Windows con los mismos pasos no debería presentar problemas; solo se debe tener cuidado con las rutas donde se guarden los archivos usados.

Prerequisitos

Instalación

Para instalar Seam y JBoss basta con descomprimir los paquetes que descarguemos de Internet. Yo recomiendo hacerlo en la carpeta /opt en sistemas UNIX/Linux, o directamente en C:/ en sistemas Windows.

Creación de un proyecto base para Eclipse

SeamFramework nos proporciona una herramienta de línea de comandos para la generación de proyectos base. Vamos al directorio donde lo instalamos y ejecutamos:

./seam setup

Ahora debemos responder a cada una de las preguntas que nos hace; muchas de ellas las debemos dejar por defecto, así que nos concentraremos solo en aquellas en donde tengamos que cambiar. Resumiendo:

  • El directorio donde se creará el proyecto:
    [input] Enter the directory where you want the project to be created (should not contain spaces) [/home/funtoo/projects] [/home/funtoo/projects]
    /home/funtoo/Poli/Componentes/seam-framework/workspace
  • El directorio donde se encuentra el JBoss AS:
    [input] Enter your JBoss AS home directory [C:/Program Files/jboss-5.1.0.GA] [C:/Program Files/jboss-5.1.0.GA]
    /opt/jboss-5.1.0.GA/
  • El nombre del proyecto:
    [input] Enter the project name [myproject] [myproject]
    holaseam
  • Vamos a desarrollar nuestra aplicación como EAR:
    [input] Is this project deployed as an EAR (with EJB components) or a WAR (with no EJB support)? [war] (ear, [war])
    ear
  • Definimos el nombre del paquete en base de la aplicación:
    [input] Enter the base package name for your Java classes [com.mydomain.holaseam] [com.mydomain.holaseam]
    org.ejemplo.seam
  • Los que hacen referencia a los Session Beans o Test Cases los podemos dejar como nos lo pongan. El gestor de base de datos; en este caso usé mysql aunque debería ser practicamente transparente:
    [input] What kind of database are you using? [hsql] ([hsql], mysql, derby, oracle, postgres, mssql, db2, sybase, enterprisedb, h2)
    mysql
  • Ingresamos la ruta en donde se encuentra el driver JDBC:
    [input] Enter the filesystem path to the JDBC driver jar [] []
    /opt/conectores/mysql-connector-java-5.0.8-bin.jar
  • Ahora debemos definir la URL de conexión a la base de datos. En este caso, he creado una base de datos llamada ejemplo, y por lo tanto la URL quedaría así:
    [input] Enter the JDBC URL for your database [jdbc:mysql:///test] [jdbc:mysql:///test]
    jdbc:mysql://localhost:3306/ejemplo
  • Con esta opción se ejecutará un script llamado import.sql cada vez que hagamos un deploy del proyecto. Dicho archivo deberá tener los scripts necesarios para crear tablas y registros. Puesto que en este laboratorio poco vamos a usar MySQL, puedes poner lo que quieras; pero es importante tener en cuenta esta opción a la hora de desarrollar un proyecto.
    [input] Do you want to recreate the database tables and execute import.sql each time you deploy? [n] (y, [n])
    y

Ya que hemos configurado lo que será el proyecto, es hora de crearlo. Ejecutamos el comando:

./seam create-project

Esto creará un proyecto base que puedes abrir con Eclipse, y eso es justo lo que haremos a continuación.

Abrimos eclipse y nos aseguramos que el workspace sea el mismo directorio en el que creamos el proyecto desde Seam. Vamos a la creación de un nuevo proyecto Java:

seam-screenshot

Le damos el mismo nombre que a nuestra aplicación Seam (en este caso holaseam):

seam-screenshot

Y puesto que ya existe un proyecto creado en el workspace muchas de las opciones ya aparecen asignadas. Hacemos clic en Next y vemos que ya hay una estructura de directorios creada con la base del proyecto Seam.

seam-screenshot

Hacemos clic en Finish, y ya podemos comenzar a editar y modificar el proyecto.

seam-screenshot

Despliegue del proyecto

Primero debemos iniciar el servicio de JBoss. Para ello ejecutamos el archivo run.sh (run.bat en Windows) del directorio bin de Jboss. Este dejará el servicio web corriendo por defecto en el puerto 8080.

Para hacer el despliegue sobre JBoss, usamos un archivo Ant que se generó junto con el proyecto. Dicho archivo nos permite ejecutar tests, hacer (re)despliegues, generar el JavaDoc, entre otras. Así que habrímos el archivo build.xml y nos aseguramos que la vista Outline esté abierta:

seam-screenshot

Dentro de la vista Outline podemos ver los componentes del archivo build.xml y podemos ejecutarlos con Ant. En este caso, buscamos el componente deploy, hacemos clic derecho, Run As, y Ant Build.

seam-screenshot

Algunas veces se generan errores al hacer el despliegue:

seam-screenshot

Si es tu caso, deberás eliminar los archivos y directorios que tengan el nombre del proyecto del directorio deploy en JBoss. En mi caso los elimino con este comando:

rm -rf /opt/jboss-5.1.0.GA/server/default/deploy/holaseam*

Si todo sale bien, cuando hagamos de nuevo deploy veremos algo como esto:

seam-screenshot

Es hora de probar la aplicación. Abrimos el navegador en la dirección: http://localhost:8080/holaseam/

seam-screenshot

seam-screenshot

seam-screenshot

Descargar versión en PDF

Descargar

13 Comentarios | deja el tuyo

Un enlace entrante

12 Comentarios en “JBoss Seam Framework + Laboratorio de iniciación”

  1. (Colombia) Cristian Castiblanco: JBoss Seam Framework + Laboratorio de iniciación http://bit.ly/3Kuhj9

  2. angelfqc dice:

    lo siento
    es una pregunta que no viene con el tema
    ¿que tema de firefozx usas?
    el de la imagen esta muy bueno

  3. angelFQC dice:

    Muchas gracias

  4. Juan Vargas dice:

    Excelente tutorial, yo trabaje con Seam utilizando en eclipse jboss tools, es un excelente framework

  5. Andrés Do Rego Barros dice:

    Hola Cristian, muy interesante el tutorial, te consulto si usaste alguna herramienta UML para generar los Bean de Session de Seam, yo estoy probando ahora el Omondo en Eclipse ya que vengo de Netbeans y este ultimo descontinuo el pluggin de UML por lo que estoy explorando otras opciones.
    Gracias
    Andrés

  6. Cristian dice:

    Hola Andrés…

    Para este caso no he usado ningún modelador UML en especial. Omondo es muy bueno, lástima que ya no es libre. Y hay otros, dentro de JBossTools si mal no recuerdo. Pero la verdad casi siempre uso ArgoUML.

    Un saludo!

  7. duda- sobre el plugins de eclipse

    yo instalé los plugines para generar el projecto seam directamente desde eclipse, lo genera, pero luego de esto, no me hace el build.xml solo muestra una carpeta de nombre build.

    si alguien tiene alguna idea?
    gracias.
    fernando

  8. fermin dice:

    Hoola

    Saludos

    Fermin

  9. Dario dice:

    Hola, mi pregunta es que si puedo generar las relaciones de mucho a muchos de la base de datos con el seam-gen

  10. jhon1977 dice:

    Hola, espero me puedan apoyar, el proyecto fue generado exitosamente con el deploy, pero al acceder a la url http://localhost:8080/holaseam/ me manda un error:
    HTTP Status 404 –

    type Status report
    message
    descriptionThe requested resource () is not available.

    Sun GlassFish Enterprise Server v2.1

    Sabran que me esta faltando?

    Gracias
    Saludos

¡Déjanos tu comentario!