jueves, 7 de julio de 2011

EJB - Configuración Eclipse + JBoss + EJB3

Este tutorial pretende explicar paso a paso como configurar un entorno de trabajo para empezar a trabajar con JBoss, EJB3 y Eclipse.
Los pasos para la configuración del entorno listo para empezar a publicar/deployar EJBs serán los siguientes:

  • Descargar las utilidades necesarias, 
  • Configurar el JBoss con el Eclipse e inicializarlo.
  • Configurar el Eclipse con el JBoss Tool (set de plugins para eclipse)
  • Configurar un proyecto EJB en eclipse (llamado EjbTutorial)
  • Configurar un cliente standalone que pueda invocar un EJB3 (llamado EjbTest)
  • Configurar un cliente web (servlet) que pueda invocar un EJB3 (llamado WebEjbTest).
  • Configurar un proyecto del tipo Enterprise Application Project (llamado WebEjbTest_EAR)

Al final del mismo, encontraremos como queda configurado un proyecto de eclipse con el JBoss listo para levantar y con todas las librerías necesarias (JARs) y links de descarga de los ejemplos de este tutorial.

Descargas

    Pasos para la configuración del JBoss con en el eclipse
    1. Descomprimir el eclipse recientemente descargado
    2. Descomprimir e instalar la JDK 1.6.26 (JDK y JRE) recientemente descargada
    3. Configurar el server JBoss con el Eclipse
      • Ir a la vista Server


      • En la vista Server, creamos un servidor


      • Seleccionamos el servidor JBoss


      • Seleccionamos el Home Directory y el JRE del JBoss


      • Seleccionamos el JRE del JBoss


      • Terminamos de crear el server JBoss


      • Mostramos como quedaría el server JBoss creado


      • Procedemos a cambiar el puerto donde levantara al servidor para que no colapse (mas adelante) con la base de datos Oracle (ambos levantan en el mismo puerto 8080)


      • Mostramos como queda el servidor con el puerto cambiado


      • Ahora vamos a levantar el servidor JBoss en el eclipse


      • Mostramos el log que se lanza cuando iniciamos el servidor


      • Mostramos como queda el server una vez levantado el JBoss


      • Mostramos como ingresamos a la URL del JBoss



    Pasos para la configuración del JBoss Tool con en el eclipse

    Para poder trabajar con JBoss es recomendable utilizar JBoss Tool, Estas herramientas son un set de plugins  para eclipse que soportan JBoss,  Hibernate, JBoss AS, Drools, jBPM, JSF, (X)HTML, Seam, Smooks, JBoss ESB, JBoss Portal, entre otras
    Se podrá encontrar mas información en la pagina oficial: http://www.jboss.org/tools
    • Obtener la URL del JBoss Tool en http://www.jboss.org/tools 
      • Hacemos clic en Downloads & Updates
      • Ingresamos al sitio oficial y desde ahi obtenemos la URL que despues vamos a ingresar en el eclipse para descargar el JBoss Tool. La version del JBoss Tool que vamos a descargar es la JBoss Tools 3.2 para Eclipse 3.6.2



    • Vamos al eclipse y precedemos a descargar el JBoss Tool luego de haber obtenido la URL de descarga


    • Agregamos la URL en el eclipse para la instalación de la herramienta y continuamos con la instalación (dicha instalación puede demorar varios minutos)




    Pasos para la configuración del entorno de desarrollo en el eclipse con EJB3 + JBoss 4.2.3 + Cliente standalone
    • Una vez que tenemos configurado el JBoss 4.2.3 en el eclipse e instalado el set de plugins de JBossTool, procedemos a crear un proyecto en el eclipse del tipo EJB Project con el nombre EjbTutorial






    • Luego, procedemos a crear un SessionBean  (EJB) del tipo Stateless con el nombre HelloWorldBean y su interface remota (ojo, por ahora no vamos a crear la interface local, solo la remota)




    •  Una vez creado el SessionBean del tipo Stateless con su interfaz remota, procedemos a deployar/desplegar el EJB en el JBoss.





    • Una vez que hayamos deployado/desplegado el EJB, vamos a crear un cliente para invocar a este EJB remoto. Este ejemplo es muy simple pero alcanza para demostrar su funcionamiento. Vamos a crear un nuevo proyecto en el eclipse del tipo Java Project llamado EjbTest y vamos a agregar como dependencia a este proyecto/modulo, el proyecto EJB creado anteriormente (es decir, este nuevo proyecto java va a tener como dependencia al proyecto/modulo EJB).Vamos a modificar el EJB creado anteriormente agregando un método tanto el HelloWorldBean como en el HelloWorldBeanRemote llamado hello() que retorne un String.
    • Haciendo un paralelismo con proyectos empresariales J2EE, esto  puede comparase cuando tenemos la aplicación separada por módulos (proyectos) donde tenemos el modulo WEB (proyecto java en este simple ejemplo) y el modulo de negocio o modulo EJB (que seria el proyecto EJB creado anteriormente). 










    • Por ultimo, vamos a deployar nuevamente el modulo/proyecto EJB y luego vamos a ejecutar el test (HelloWorldTest) del proyecto EjbTest 






    Pasos para la configuración del entorno de desarrollo en el eclipse con EJB3 + JBoss 5.1 + Cliente Web

    A diferencia de la configuración anterior, solo vamos a cambiar dos temas.

    Uno es que vamos a necesitar instalar el JBoss 5.1 para que funcionen todas las anotaciones de Java EE 5, entre ellas, las que nos permitirán inyectar los EJBs (mediante @EJB) ya que con el JBoss 4.2.3 no funcionan.  The Java 5 Enterprise Edition standard specifies that a Servlet can reference a Session Bean through an @EJB annotated reference, this was not implemented in JBoss Application Server 4.2.2.
    De hecho jboss 4.2.3 es una versión de transición que no es 100% compatible con J2EE 5
    Dos, es que vamos a crear un nuevo proyecto/modulo que sera del tipo Web para poder crear el servlet.
    • En primer lugar, vamos a descargar el JBoss 5.1 y luego procedemos a su instalación en el eclipse como lo hicimos con el JBoss 4.2.3










    • En segundo lugar, vamos a proceder a armar un proyecto WEB (que va a consistir en un servlet el cual va a invocar el EJB creado mas arriba (HelloWorldBean). El proyecto WEB lo vamos a llamar WebEjbTest. El tipo de proyecto en eclipse se llama Dynamic Web Project
    IMPORTANTE: Fe de erratas: Las capturas que se hicieron para demostrar la creación del proyecto WEB se hicieron teniendo en cuenta el JBoss 4.2.3 lo cual esta MAL. Cuando vean en las capturas que se esta haciendo referencia a dicho JBoss, reemplazarlo por el JBoss recientemente descargado (5.1.0) ya que sino no les van a funcionar los ejemplos. Es decir, el servlet no va a poder inyectar los EJBs mediante la anotación @EJB,
      • Creamos un proyecto WEB junto a los otros dos proyectos creados previamente.






      • Ahora procedemos a crear el servlet que luego invocara al EJB












      • Ahora procedemos a crear la dependencia con el proyecto/modulo de EJB (EjbTutorial)


      • Ahora procedemos a modificar el servlet creado para que invoque al EJB (HelloWorldBean) y mostramos como se deployara y se vera el resultado por consola






    • En este caso, el DEPLOY se llevo a cabo en la siguiente ruta:
    D:\wc_hibernate_ejb_jboss\.metadata\.plugins\org.jboss.ide.eclipse.as.core\JBoss_5.1_Runtime_Server1310563169018\deploy


    Listo, hasta acá tenemos configurado de una manera sencilla un cliente web que invoca a un EJB

    NOTA: En caso de querer que el deploy se arme en un EAR (en lugar de tener por separado el WAR y el JAR), tendríamos que crear un proyecto en eclipse del tipo Enterprise Application Project el cual tendrán ambos proyectos/módulos: El proyecto/modulo de EJB (EjbTutorial) y el proyecto/modulo WEB (WebEjbTest). A continuación vemos paso a paso como llevar a cabo estos pasos:

    Configuración de un proyecto Enterprise Application Project

    Ver: https://cwiki.apache.org/GMOxSAMPLES/5-minute-tutorial-on-enterprise-application-development-with-eclipse-and-geronimo.html
    • Para esto seguimos los siguientes pasos:







    • Y modificamos la inyección del EJB para que funcione de este manera

    • El proyecto final en el eclipse nos quedaría así:





    Descargas de ejemplos

    Por favor, haga clic en: Descargar ejemplos EJB

    Bibliografia



    * EJB 3 Developer Guide - A Practical Guide for developers and architects to the Enterprise Java Beans
       Standard - Michael Sikora - 2008

    8 comentarios:

    1. Muy bueno este tutorial... Muy util!

      ResponderEliminar
    2. Muchisimas gracias por tu aportación, me has ahorrado mucho tiempo y mas de un cabezazo

      ResponderEliminar
    3. Muy buen trabajo, voy a seguir el tutorial espero conseguir los resultados esperados, ya lo estaré comentando en algunos días.

      Saludos Cordiales,

      \ Anahim /

      ResponderEliminar
    4. Que buen trabajo. sos un Genio!

      ResponderEliminar
    5. Buenisimo, mega trabajo

      ResponderEliminar
    6. Gracias por tus aportes, lo maximo!!

      ResponderEliminar
    7. muy bueno el trabajo, aunque se ve que sos re bala.

      ResponderEliminar
    8. Buen laburo, se ve que eres un tipo cojonudo!!!!!

      ResponderEliminar