Construir Aplicaciones EJB con JBoss, Lomboz y Eclipse

Primero de todo tienes que configurar Eclipse con JBOSS como tu servidor de aplicaciones.

Por eso, ves a esta pgina: http://www.eclipse.org/downloads/index.php y descarga el paquete binario del editor Eclipse. Puedes descargar el paquete apropiado para tu plataforma. Este tutorial se desarroll utilizando Linux (Red Hat 8.0) como sistema operativo.

Nota:
Eclipse no incluye en entorno de ejecucin Java (JRE). Necesitars como mnimo tener instalada una versin 1.3 del JDK en tu mquina.

Ahora descomprime este fichero en tu directorio home.

    [[email protected] eclipse]$ unzip eclipse-SDK-2.1-linux-gtk.zip
    Archive: eclipse-SDK-2.1-linux-gtk.zip
    Archive: eclipse-SDK-2.1-linux-gtk.zip
    inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.jar
    inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/splash.bmp
    inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/boot.xml
    inflating: eclipse/plugins/org.eclipse.core.boot_2.1.0/plugin.properties
    -----------------------------------------------------------------------------
    ----------------------------------------------------------------------------
    -------------------------------------------------------------------------
    inflating: eclipse/install.ini 
    inflating: eclipse/startup.jar
    inflating: eclipse/readme/readme_eclipse.html

Una vez que lo hayas descomprimido tendrs un directorio llamado eclipse en tu directorio home. Entra en ese directorio y ejecuta el fichero de script llamado eclipse:

    [[email protected] eclipse]$ cd eclipse
    [[email protected] eclipse]$ ls
    cpl-v10.html features install.ini plugins startup.jar
    eclipse icon.xpm notice.html readme workspace
    [[email protected] eclipse]$ ./eclipse

Esto ejecutar el IDE en tu ordenador. Familiarzate con este entorno:

.Instalar JBOSS

Ahora que Eclipse ya est instalado y en funcionamiento, instalemos JBOSS.

Puedes descargar JBOSS listo para ejecutarse. Como JBOSS viene con una sencilla base de datos embebida (Hypersonic) y un servidor Web (JBossWEB o Tomcat) puedes utilizarlo sin ninguna configuracin inicial. Las descargas se pueden realizar desde la pgina del proyecto JBOSS en http://sourceforge.net/projects/jboss, donde siempre podrs encontrar descargas actualizadas, o desde la pgina de JBOSS, donde podrs encontrar informacin til sobre JBoss, la oficial, forums, informacin del proyecto, etc., y tambin la pgina de descarga http://www.jboss.org/downloads.jsp. Para este tutorial hemos utilizado la versin JBOSS-3.2.1 con el servidor HTTP interno JBOSSWeb Jetty.

Primero entra como root en tu Linux y descomprime este fichero en algn lugar apropiado donde tengas suficiente espacio. Yo lo tengo bajo el directorio /opt/jboss/.

Esto crear un directorio llamado jboss-3.2.1 bajo /opt/jboss/

Antes de ejecutar JBOSS para comprobar su correcta instalacin, debes asegurarte de que has configurado correctamente las siguientes variables de entorno:

    JBOSS_HOME: /opt/jboss/jboss-3.2.1 
    JAVA_HOME: /usr/java/j2sdk1.4.1_02
    CLASSPATH: /usr/java/j2sdk1.4.1_02/lib/tools.jar 

Ahora ve al directorio /opt/jboss/jboss-3.2.1 y tendrs estos directorios:

    [[email protected] jboss-3.2.1]# ls
    bin client docs lib server

Entra en el directorio bin y encontrars un script llamado run.sh. Ejectalo desde la lnea de ocmandos. Si tienes suerte, arrancar y vers el siguiente mensaje:

  15:12:59,876 INFO [Server] JBoss 
  (MX MicroKernel) [3.2.1 (build: CVSTag=JBoss_3_2_1 date=200305041533)] Started 
  in 59s:676ms.

Para asegurarte de que JBOSS est funcionando correctamente, arranca tu navegador web y ponle esta direccin:

http://localhost:8080/jmx-console/index.jsp

Si puedes ver esta pgina en tu navegador, es porque JBOSS se est ejecutando en tu mquina.

Observa que en esta pgina bajo la sub-cabecera jboss hay un enlace a service=Hypersonic. Pulsa ese enlace y traer una pgina MBean View. En esta pgina hay una operacin MBean llamada startDatabaseManager; ve a ella y pulsa el botn Invoke. Esto traer la consola de la base de datos Hypersonic, desde aqu puedes acceder a los esquemas y otras operaciones de control de la base de datos.

Nota del Traductor:
Si has instalado una versin de JBOSS posterior a la 3.2.1 no te aparecer el enlace a service=Hypersonic; (en las ltimas versiones de JBOSS, ste viene configurado, por motivos de seguridad, para que no se pueda acceder la base de datos mediante TCP-IP).
Para activar la conexin TCP-IP de la base de datos sigue estos pasos:
  1. Detn el servidor JBOSS.
  2. Ve al directorio /opt/jboss/jboss-3.2.1/server/default/deploy y abre el fichero hsqldb-ds.xml
  3. Quita el comentario a la lnea:
    <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
    
    
  4. Comenta la lnea:
    <connection-url>jdbc:hsqldb:${jboss.server.data.dir}/hypersonic/localDB
    </connection-url>
    
    
  5. Al final del fichero, quita el comentario a la siguiente etiqueta:
    <mbean code="org.jboss.jdbc.HypersonicDatabase"
      name="jboss:service=Hypersonic">
      <attribute name="Port">1701</attribute>
      <attribute name="Silent">true</attribute>
      <attribute name="Database">default</attribute>
      <attribute name="Trace">false</attribute>
      <attribute name="No_system_exit">true</attribute>
    </mbean>
    
    
  6. Graba el fichero y copalo tambin al directorio: /opt/jboss/jboss-3.2.1/server/all/deploy
  7. Arranca otra vez el servidor JBOSS, ve de nuevo a la consola y ya podrs ver el enlace a Hypersonic

.Crear el Esquema de la Base de Datos

Como mencionamos en la pgina anterior, el esquema de nuestro inventario est compuesto de cinco relaciones. Cargaremos este esquema en la base de datos interna Hypersonic:

Para hacer esto, utilizaremos los siguientes ficheros de script:

Primero copia estos tres ficheros al directorio $JBOSS_HOME/server/default/data/hypersonic/. En este ejemplo est en /opt/jboss/jboss-3.2.1/server/default/data/hypersonic/

Ahora accede al HSQL Database Manager utilizando la consola JMX-Management Console que has visto arriba.

Nota:
Por favor, borra/elimina cualquier tabla existente en la base de datos que pueda tener los mismos nombres, o naturalmente obtendrs errores cuando ejecutes los scripts.

En el men File del SQL Database Manager selecciona Open Script.. y selecciona el script myStoreSchema.script.

Despus de pulsar Open pulsa sobre Execute SQL Statement y aparecer la siguiente pantalla:

Ve a Go to View > Refresh Tree. Si puedes ver las cinco nuevas tablas es que tu esquema est listo, y es hora de rellenarlo con datos.

Ve a Go to File > Open Script.. > selecciona myStoreSchema.data y pulsa Open.. > Execute SQL Statement.

Ahora tus datos estn cargados en la base de datos, para poder verificarlo slo ejecuta cualquier consulta para ver resultados como estos:

Asegurate de 'aceptar' (Options->commit) para grabar tu esquema en la base de datos.

Nota:
Apaga el servidor JBOSS ya que posteriormente los ejecutaremos desde dentro de Eclipse

.Instalar Lomboz

Para poder ejecutar JBOSS desde dentro de Eclipse necesitars un plug-in, y para este tutorial hemos utilizado Lomboz que est disponible en http://sourceforge.net/projects/lomboz o en http://www.objectlearn.com/index.jsp.

Nota:
Para este tutorial hemos utilizado el paquete lomboz.21_02.zip.

Ahora descomprime este fichero en un directorio temporal; tendrs un directorio llamado plugins. Ve al directorio plugins/com.objectlearn.jdt.j2ee/servers. Este directorio contiene ficheros de configuracin para varios servidores. Para este tutorial puedes utilizar este: jboss321all.server.

Nota:
Si hay varios ficheros de configuracin, el plug-in adoptar el primer fichero de configuracin que haya dentro del directorio eclipse/plugins/com.objectlearn.jdt.j2ee/servers/, en orden alfabtico, por eso renombra todos los ficheros de configuracin con la extensin .bak. Esto es slo para evitar resbalones mientras aprendemos.

Ahora copia el fichero jboss321all.server al directorio servers:

    cd plugins/
    [[email protected] plugins]$ ls
    com.objectlearn.jdt.j2ee
    [[email protected] com.objectlearn.jdt.j2ee]$ cd servers
    [[email protected] servers$ ls
    jboss244.server.bak jboss303Tomcat4112.server.bak 
    jboss300all.server.bak jboss321all.server 
    tomcat403.server.bak weblogic70.server
    jboss300.server.bak tomcat410.server x.log

Aqu puedes ver un fragmento del fichero jboss321all.server utilizado para la configuracin:

Puedes modificar las distintas configuraciones de este fichero de acuerdo a tu entorno (por ejemplo, el nmero de puerto).

Una vez que has grabado este fichero bajo el directorio com.objectlearn.jdt.j2ee/servers, copia el directorio com.objectlearn.jdt.j2ee bajo el directorio $HOME/eclipse/plugins/, donde $HOME es tu directorio home.

[[email protected] temp/plugins] 
  mv com.objectlearn.jdt.j2ee /home/vishal/eclipse/plugins/.

.Configuracin de Lomboz

Ahora ejecuta Eclipse para configurar Lomboz en $HOME/eclipse/eclipse.

Ve al mn Windows > Open Perspective > Java como se ve en la siguiente figura:

Ve de nuevo al men Window > Customize Perspective > Other.

Selecciona el sub-nodo Lomboz Actions.

Pulsa OK. Ahora tendrs un nuevo icono en el men superior parecido a este:

Pulsa sobre este icono y tendrs una ventana Lomboz J2EE View en tu entorno:

Ahora ya est disponible la vista Lomboz J2EE. Ve a Window > Customize Perspective. Selecciona File > New sub node. Selecciona todos los nodos que empiecen con Lomboz.

Selecciona Window > Show view. Seleciona Console, Se mostrar la vista Lomboz J2EE y otras ms como se ve en la figura:

Ahora pulsa OK. Tendrs todas estas opciones bajo File > New > y aparecer el men Lomboz, o pulsando con el botn derecho en el Package Explorer aparecer un men desplegable.

.Configurar JBOSS para ejecutarlo desde dentro de Eclipse

Primero tenemos que configurar la selecciones de desarrolo Java, porque Lomboz requiere diferentes directorios para los cdigos fuente y binario.

Ve a Window > Preferences > Java > New Project.

Introduce src y bin como nombres de esas carpetas, que sern por defecto. Por favor, no modifiques estos nombres ya que son necesarios para algunas de las tareas de Lomboz.

Tambin debes asegurarte de que la variable de entorno JRE_LIB apunta a la librera JRE.

Ve a Window > Preferences.

Ve al nodo Lomboz bajo la ventana Preferences. Asegurate de que la variable Tools.jar est seleccionada a $JAVA_HOME/lib/tools.jar.

Ve al sub-nodo server definitions bajo el nodo Lomboz. Selecciona JBOSS 3.2.ALL bajo Server types y el resto de las opciones se rellenarn despus de cargar el fichero de configuracin del servidor creado para este tutorial: jboss321all.server.

Ahora, bajo Server Definitions, ve a Classpath y asegurate de que todos los paths son correctos. Si hay una mala seleccin de un path, se mostrar un cruz roja sobre los iconos jar en la subseccin Server libraries / Client libraries.

Desde aqu se pueden aadir o eliminar libreras. Asegurate de pulsar Apply para aceptar todos los cambios antes de alterar cualquier opcin.

Ahora verifica tus variables de classpath.

Ve a Window > Preferences > Java > Classpath Variables:

Configura todas estas variables del Classpath de acuerdo a tu entorno.

.Probar tu Configuracin

Crear un proyecto J2EE de prueba para probar tu configuracin.

Ve a File > New > Lomboz J2EE Project.

Introduce Test como nombre de proyecto y pulsa Next.

Chequea aqu tu configuracin; si tienes Test/src en la carpeta build path y Test/bin en default output est todo bien.

Ahora pulsa en la pestaa Libraries en el Project Creation Wizard. Debido a Bug en Eclipse 2.1 est librera est mal configurada. Por eso, seleccionala y eliminala.

Ahora aade una nueva librera > Add Library.. > Selecciona JRE System library > Next.

Selecciona Default library y pulsa Finish y la nueva librera estar configurada.

Nota:
Tendrs que repetir este paso siempre que crees un nuevo proyecto J2EE, debido al bug en Eclipse 2.1

Ahora pulsa Next, ve a Web Module > Add.. >, introduce como Module Name OnlineBank y pulsa OK.

Ve a la pestaa Ejb Modules, pulsa Add.. >, e introduce MyBank como Module Name y luego pulsa OK.

Ve a Targeted Server > Add.. > 'JBOSS 3.2.1 ALL'.

Nota:
JBOSS 3.2.1 ALL no es el nombre del fichero, sino el nombre asignado al servidor en el fichero jboss321all.server utilizado para su configuracin.
 
    <serverDefinition
        name="JBOSS 3.2.1 ALL"
        ejbModules="true"

Pulsa Finish. Ahora tendrs todos estos directorios y libreras bajo el directorio Test en el Package Explorer.

  • src es el directorio donde estarn todos los paquetes para componentes EJB y servlets.
  • MyBank es el directorio para tu mdulo EJB y empezar con 7 ficheros como se ve en la siguiente figura.
  • OnlineBank es el directorio para tu mdulo Web y de inicio contendr 6 ficheros. Tus pginas JSP estarn bajo este directorio en este mdulo.
Nota:
Si ests interesado en Ant (del proyecto Jakarta) observa que mbos mdulos tienen un fichero build.xml que Ant utiliza para construir la aplicacin.

Ahora ve a Window > Show View > Lomboz J2EE View. La vista Lomboz J2EE tendr un proyecto Test con dos mdulos MyBank y OnlineBank que utilizan JBOSS 3.2.1 como su servidor por defecto:

Es la hora de crear un EJB; ve a File > New > Lomboz EJB, aade un nombre de paquete au.com.tusc; aade MySession en Name. Selecciona la opcin Stateless Session EJB.

Esto crear un fichero llamado MySessionBean.java en el paquete au.com.tusc como se observa en la siguiente figura.

Nota:
Esto generar el nombre del bean, el nombre JNDI y el tipo del bean. Al nombre del fichero tambin se le ha aadido la palabra Bean, ya que slo dimos el nombre MySession. Debes ser cuidadoso con las convenciones de nombrado, ya que slo necesitas el nombre del bean en el wizard. No aadas la palabra Bean al nombre ya que el wizard lo hace por t.

Ahora aadiremos un mtodo de negocio mediante el wizard:

Ve al fichero MySessionBean.java en la ventana Package Explorer y expndelo, pulsa con el botn derecho sobre el nodo MySessionBean como se muestra en la siguiente figura, selecciona New > Lomboz EJB Method wizard. En la firma del mtodo pon public String learnJ2EE(String messg), selecciona el tipo de mtodo como Business Method y el Interface Type como Remote Interface.

Esto generar la firma requerida para tu mtodo de negocio en tu clase bean. Ahora aade esta lnea al mtodo:

 /**
  * @ejb.interface-method
  * tview type="remote"
  *
  **/
     public  String learnJ2EE  (String messg)  {
        return "Me too! "
     }

Graba el fichero. Ahora generaremos el resto de ficheros requeridos para desplegar este Bean (Interfaces Home y Remote junto con las clases de ayuda utilizando Xdoclet).

Primero aade este bean al mdulo: Ve a Package Explorer > Test > MySessionBean.java > MySessionBean, pulsa en l con el botn derecho y aparecer un men. Ve a Lomboz J2EE en ese men, y selecciona Add EJB to module'.

Ve a Package Explorer > Test > MyBank (que es un directorio) pulsa con el botn derecho sobre l, aparecer un men. Ve a Lomboz J2EE en ese men, y selecciona Generate EJB classes. Esto generar los interfaces necesarios, las clases de ayuda y los ficheros relacionados con el despliegue; es decir, los descriptores de despliegue:

Crear un nuevo directorio llamado ejbsrc, que tendr un nuevo paquete llamado au.com.tusc, y bajo este los interfaces remoto y home, junto las clases de ayuda necesarias.

Nota:
No editars ninguno de los ficheros generados por Xdoclet bajo el directorio ejbsrc en ningn momento de este tutorial. Porque cada vez que utilizas la opcin Generate EJB Classes, generar los interfaces y las clases de ayuda necesarias que hemos mencionado arriba. Estos ficheros los genera Xdoclet, despus de analizar tus clases bean, que se han creado en el wizard de Lomboz. Xdoclet mira las distintas etiquetas y mtodos declarados en la clase bean y genera los ficheros adecuados. Como resultado, slo tienes que aadir los mtodos de negocio y sus respectivas implementaciones en la clase bean, y el resto se lo dejas a Xdoclet. Por eso, en ningn momento del desarrollo necesitars (y no debers) editar cualquier fichero generado. Lo vers ms claro segn avances por el tutorial.

Debajo del directorio MyBank > META-INF tambin encontrars 15 ficheros, que incluyen ejb-jar.xml, jboss.xml y ejb-generate.xml. Inicialmente haba 6 ficheros; estos nuevos ficheros extras son necesarios para desplegar el bean:

Ahora despleguemos este bean sin entrar en ms detalles del despliegue. Ve a la vista Lomboz J2EE en tu espacio de trabajo y expande Test > y luego MyBank. Habr aadido au.com.tusc.MySessionBean a tu mdulo MyBank EJB. Pulsa con el botn derecho en el icono JBOSS 3.2.1 ALL como se muestra en la siguiente figura.

Aparecer un menu; selecciona la opcin Debug Server. Arrancar el servidor en modo Debug y despus de arrancarlo mostrar este mensaje en la consola bajo tu espacio de trabajo:

Ve a la vista Lomboz J2EE View >, expande Test >, selecciona MyBank y pulsa en l con el botn derecho; a parecer un men; selecciona la opcin Deploy:

Una vez desplegado el bean, en la consola vers un mensaje que lo confirma:

Ahora crearemos un cliente para acceder a este bean desplegado en el servidor de aplicaciones JBOSS. Ve a Package Explorer > Test > src, pulsa con el botn derecho y aparecer un men; selecciona EJB Test client. Introduce test como nombre de paquete y Client como nombre de cliente:

Selecciona EjbHome como MySessionHome y Ejb Interface como MySession. Finaliza como se muestra en la figura:

Ahora que hemos generado el cliente, es hora de llamar a los mtodos de negocio del bean desplegado. Necesitamos algn cdigo para llamar al mtodo del bean:

Teclea estas lneas en el mtodo testBean():

    public void testBean() {
        try {
            au.com.tusc.MySession myBean = getHome().create();

            //--------------------------------------
            //This is the place you make your calls.
            //System.out.println(myBean.callYourMethod());

            String request = "I'm tired of 'Hello, world' examples..";
            System.out.println("Request from client : " + request);
            System.out.println("Message from server : " + myBean.learnJ2EE(request) );
         } catch (RemoteException e) {
            e.printStackTrace();
         } catch (CreateException e) {
            e.printStackTrace();
         } catch (NamingException e) {
            e.printStackTrace();
         }
    }

Ahora selecciona Client dentro del Package Explorer. Ve al men superior y pulsa sobre el botn con este icono:

En este icono ve a > Run as > Java Application.

Tu cliente va a realizar un peticin y los resultados se mostrarn en la consola del espacio de trabajo, de esta forma:

Nota:
Ignora las excepciones, que slo indican que te falta org.apache.log4j.Property en la path del cliente. Cubriremos esto ms adelante ya que no afecta a la funcionalidad del bean.

Has creado un bean y has podido realizarle una peticin, Enhorabuena!!

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.