jueves, 5 de febrero de 2009

Tutorial I: Generar proyectos con Seam

Bueno, aqui empiezan una serie de tutoriales sobre el framework Seam. Por supuesto en la documentación de dicho framework hay tutoriales, sin embargo creo que tras más de dos años de experiencia usando este framework puedo aportar un punto de vista más personal como usuario. La documentación es normalmente una de las cosas más complicadas de hacer de un proyecto, y por desgracia, una de las más prescindibles, por lo que en muchos casos son incompletas, inexactas o directamente ni existen.

El primer tutorial será sobre cómo generar un proyecto para una aplicacion web con soporte para EJBs.

Requerimientos previos:
Cuando tenga tiempo me curro unos articulos de como funcionan y para que sirven esos requerimientos, asi como una guía de cómo instalar cada uno de ellos.

Lo primero que teneis que hacer es bajaros la última version de Seam desde su pagina web. Una vez bajada descomprimid el archivo en un directorio cualquiera de vuestro ordenador.

A continuación abrid un terminal de línea de comandos e id al directorio de seam (donde lo habeis extraido, vamos). Allí ejectuad el comando "seam setup" y en el asistente de configuración os preguntarán:
  1. Java workspace: donde guardaremos nuestro proyecto (debe coincidir con el workspace de eclipse)
  2. Jboss home directory: pues eso, la ruta de instalacion de jboss
  3. Nombre del proyecto (en mi caso example)
  4. Si se quiere usar IceFaces en lugar de Richfaces, en mi caso he puesto que no (os lo recomiendo)
  5. Que skin de richfaces queremos usar, pulsad directamente enter
  6. Si el proyecto va a ser desarrollado como un EAR o como un WAR, el EAR tiene soporte para EJBs, mientras que el WAR no (sería solo la vista), así que elegimos EAR sin duda
  7. Nombre del paquete para los beans de Sesión, en mi caso sería: com.cayejeando.example.session
  8. Lo mismo pero para beans de entidad, asi que en este caso es: com.cayejeando.example.entity
  9. Para los test más de lo mismo: com.cayejeando.example.test
  10. Que tipo de base de datos estamos usando, yo uso MySQL como puse en los requerimientos, asi que pongo esa
  11. Dialecto de Hibernate, en mi caso al ser MySQL sería org.hibernate.dialect.MySQLDialect
  12. Ruta o path a el conector con la base de datos, es decir, donde hemos puesto el MySQL Connector en mi caso.
  13. Driver para la base de datos (diferenciad claramente dialecto de hibernate y driver del conector), viene especificado por el proveedor de tu DB, en mi caso com.mysql.jdbc.Driver
  14. URL de conexión a la DB, al igual que el anterior también viene definido por el proveedor de tu DB, en mi caso ya que me conecto a la máquina local jdbc:mysql://localhost:3306/example
  15. Nombre de usuario para la base de datos, éste debe ser un usuario único por cada proyecto que hagais a no ser que querais compartir la base de datos para lograr mayor integridad del sistema.
  16. Contraseña para ese usuario
  17. Nombre del esquema (o catálogo) en la DB para tu proyecto, en mi caso siempre creo un esquema con el mismo nombre que el proyecto.
  18. ¿Trabajas con tablas que ya existen en la base de datos? No, con lo cual el proyecto tiene que comprobar si existen las tablas y crearlas en caso necesario.
  19. Nos pregunta si queremos que tiren la DB cada vez que hagamos "undeploy", en realidad ésto vendrá definido luego en el archivo /resources/META-INF/persistence-*.xml, dependiendo del perfil que tengamos será persistence-dev o prod o test. Si queremos que en vez de tirar y recrear la base de datos cada vez que volquemos (lo que es un coñazo), simplemente la recree cada vez que este incompleta o falte alguna tabla, debemos de cambiar la linea por
Y ya estará lista la configuración del seam para el nuevo proyecto. Ahora simplemente tecleamos "seam new-project" y se nos creará el proyecto en el directorio indicado en workspace.

Ahora en caso de que queramos añadirlo a eclipse, simplemente abrid eclipse y añadid el proyecto como New->General->Proyect->Next y escribiendo el nombre del proyecto, en este caso será example y haced click en Finish.

El Proyecto ya estará añadido, para que no os este dando el coñazo todo el rato haced click con el botón derecho sobre el nombre del proyecto e id a Properties->Builders y allí quitad de señalar la casilla que pone explode.

Arrastrad el archivo build.xml a la vista de Ant y pinchad primero en unexplode (porque por desgracia nos habrá hecho ya un explode) y tras arrancar el server haced click en deploy. En cuanto ponga las lineas:

INFO [EARDeployer] Started J2EE application:...

Podreis ir a la direccion http://localhost:8080/nombre_de_tu_proyecto, en nuestro caso http://localhost:8080/example y deberíais ver ésto

Image Hosted by ImageShack.us

3 comentarios:

  1. Muchas gracias, ha sido de gran ayuda.

    ResponderEliminar
  2. donde estan el resto de tutoriales...??

    ResponderEliminar
  3. thx man, he perdido mucho tiempo intentando y con esta guia me funcionó a la perfección

    +1

    ResponderEliminar