Programación en castellano
Inicio > Tutoriales > Lenguajes orientados a objeto > J2EE > Construir Aplicaciones EJB con JBoss, Lomboz y Eclipse
-Tutoriales

Construir Aplicaciones EJB con JBoss, Lomboz y Eclipse


Configuración de Eclipse para utilizar JBOSS y Lomboz

. Instalar Eclipse

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

Por eso, ves a esta página: 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 ejecución Java (JRE). Necesitarás como mínimo tener instalada una versión 1.3 del JDK en tu máquina.

Ahora descomprime este fichero en tu directorio home.

    [vishal@localhost 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 tendrás un directorio llamado eclipse en tu directorio home. Entra en ese directorio y ejecuta el fichero de script llamado eclipse:

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

Esto ejecutará el IDE en tu ordenador. Familiarízate 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 configuración inicial. Las descargas se pueden realizar desde la página del proyecto JBOSS en http://sourceforge.net/projects/jboss, donde siempre podrás encontrar descargas actualizadas, o desde la página de JBOSS, donde podrás encontrar información útil sobre JBoss, la oficial, forums, información del proyecto, etc., y también la página de descarga http://www.jboss.org/downloads.jsp. Para este tutorial hemos utilizado la versión JBOSS-3.2.1 con el servidor HTTP interno JBOSSWeb Jetty.

Primero entra como root en tu Linux y descomprime este fichero en algún 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 instalación, 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 tendrás estos directorios:

    [root@localhost jboss-3.2.1]# ls
    bin client docs lib server

Entra en el directorio bin y encontrarás un script llamado run.sh. Ejecútalo desde la línea de ocmandos. Si tienes suerte, arrancará y verás 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 dirección:

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

Si puedes ver esta página en tu navegador, es porque JBOSS se está ejecutando en tu máquina.

Observa que en esta página bajo la sub-cabecera jboss hay un enlace a service=Hypersonic. Pulsa ese enlace y traerá una página MBean View. En esta página hay una operación MBean llamada startDatabaseManager; ve a ella y pulsa el botón 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 versión 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 conexión TCP-IP de la base de datos sigue estos pasos:
  1. Detén 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 línea:
    
    <connection-url>jdbc:hsqldb:hsql://localhost:1701</connection-url>
    
    
  4. Comenta la línea:
    
    <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 copíalo también 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 podrás ver el enlace a Hypersonic

. Crear el Esquema de la Base de Datos

Como mencionamos en la página 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 obtendrás errores cuando ejecutes los scripts.

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

Después 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 están cargados en la base de datos, para poder verificarlo sólo 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 necesitarás 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; tendrás un directorio llamado plugins. Ve al directorio plugins/com.objectlearn.jdt.j2ee/servers. Este directorio contiene ficheros de configuración para varios servidores. Para este tutorial puedes utilizar este: jboss321all.server.

Nota:
Si hay varios ficheros de configuración, el plug-in adoptará el primer fichero de configuración que haya dentro del directorio eclipse/plugins/com.objectlearn.jdt.j2ee/servers/, en orden alfabético, por eso renombra todos los ficheros de configuración con la extensión .bak. Esto es sólo para evitar resbalones mientras aprendemos.

Ahora copia el fichero jboss321all.server al directorio servers:

    cd plugins/
    [vishal@localhost plugins]$ ls
    com.objectlearn.jdt.j2ee
    [vishal@localhost com.objectlearn.jdt.j2ee]$ cd servers
    [vishal@localhost 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 configuración:

Puedes modificar las distintas configuraciones de este fichero de acuerdo a tu entorno (por ejemplo, el número 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.

[vishal@localhost temp/plugins] 
  mv com.objectlearn.jdt.j2ee /home/vishal/eclipse/plugins/.

. Configuración de Lomboz

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

Ve al ménú 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 tendrás un nuevo icono en el menú superior parecido a este:

Pulsa sobre este icono y tendrás 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 más como se ve en la figura:

Ahora pulsa OK. Tendrás todas estas opciones bajo File > New > y aparecerá el menú Lomboz, o pulsando con el botón 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 códigos fuente y binario.

Ve a Window > Preferences > Java > New Project.

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

También debes asegurarte de que la variable de entorno JRE_LIB apunta a la librería 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 rellenarán después de cargar el fichero de configuración 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 selección de un path, se mostrará un cruz roja sobre los iconos jar en la subsección Server libraries / Client libraries.

Desde aquí se pueden añadir o eliminar librerías. Asegurate de pulsar Apply para aceptar todos los cambios antes de alterar cualquier opción.

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 Configuración

Crear un proyecto J2EE de prueba para probar tu configuración.

Ve a File > New > Lomboz J2EE Project.

Introduce Test como nombre de proyecto y pulsa Next.

Chequea aquí tu configuración; si tienes Test/src en la carpeta build path y Test/bin en default output está todo bien.

Ahora pulsa en la pestaña Libraries en el Project Creation Wizard. Debido a Bug en Eclipse 2.1 está librería está mal configurada. Por eso, seleccionala y eliminala.

Ahora añade una nueva librería > Add Library.. > Selecciona JRE System library > Next.

Selecciona Default library y pulsa Finish y la nueva librería estará configurada.

Nota:
Tendrás 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 pestaña 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 configuración.
 
    <serverDefinition
        name="JBOSS 3.2.1 ALL"
        ejbModules="true"

Pulsa Finish. Ahora tendrás todos estos directorios y librerías bajo el directorio Test en el Package Explorer.

  • src es el directorio donde estarán todos los paquetes para componentes EJB y servlets.
  • MyBank es el directorio para tu módulo EJB y empezará con 7 ficheros como se ve en la siguiente figura.
  • OnlineBank es el directorio para tu módulo Web y de inicio contendrá 6 ficheros. Tus páginas JSP estarán bajo este directorio en este módulo.
Nota:
Si estás interesado en Ant (del proyecto Jakarta) observa que ámbos módulos tienen un fichero build.xml que Ant utiliza para construir la aplicación.

Ahora ve a Window > Show View > Lomboz J2EE View. La vista Lomboz J2EE tendrá un proyecto Test con dos módulos 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, añade un nombre de paquete au.com.tusc; añade MySession en Name. Selecciona la opción 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 también se le ha añadido la palabra Bean, ya que sólo dimos el nombre MySession. Debes ser cuidadoso con las convenciones de nombrado, ya que sólo necesitas el nombre del bean en el wizard. No añadas la palabra Bean al nombre ya que el wizard lo hace por tí.

Ahora añadiremos un método de negocio mediante el wizard:

Ve al fichero MySessionBean.java en la ventana Package Explorer y expándelo, pulsa con el botón derecho sobre el nodo MySessionBean como se muestra en la siguiente figura, selecciona New > Lomboz EJB Method wizard. En la firma del método pon public String learnJ2EE(String messg), selecciona el tipo de método como Business Method y el Interface Type como Remote Interface.

Esto generará la firma requerida para tu método de negocio en tu clase bean. Ahora añade esta línea al método:

 /**
  * @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 añade este bean al módulo: Ve a Package Explorer > Test > MySessionBean.java > MySessionBean, pulsa en él con el botón 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 botón 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 editarás ninguno de los ficheros generados por Xdoclet bajo el directorio ejbsrc en ningún momento de este tutorial. Porque cada vez que utilizas la opción Generate EJB Classes, generará los interfaces y las clases de ayuda necesarias que hemos mencionado arriba. Estos ficheros los genera Xdoclet, después de analizar tus clases bean, que se han creado en el wizard de Lomboz. Xdoclet mira las distintas etiquetas y métodos declarados en la clase bean y genera los ficheros adecuados. Como resultado, sólo tienes que añadir los métodos de negocio y sus respectivas implementaciones en la clase bean, y el resto se lo dejas a Xdoclet. Por eso, en ningún momento del desarrollo necesitarás (y no deberás) editar cualquier fichero generado. Lo verás más claro según avances por el tutorial.

Debajo del directorio MyBank > META-INF también encontrarás 15 ficheros, que incluyen ejb-jar.xml, jboss.xml y ejb-generate.xml. Inicialmente había 6 ficheros; estos nuevos ficheros extras son necesarios para desplegar el bean:

Ahora despleguemos este bean sin entrar en más detalles del despliegue. Ve a la vista Lomboz J2EE en tu espacio de trabajo y expande Test > y luego MyBank. Habrá añadido au.com.tusc.MySessionBean a tu módulo MyBank EJB. Pulsa con el botón derecho en el icono JBOSS 3.2.1 ALL como se muestra en la siguiente figura.

Aparecerá un menu; selecciona la opción Debug Server. Arrancará el servidor en modo Debug y después 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 botón derecho; a parecerá un menú; selecciona la opción Deploy:

Una vez desplegado el bean, en la consola verás 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 botón 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 métodos de negocio del bean desplegado. Necesitamos algún código para llamar al método del bean:

Teclea estas líneas en el método 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 botón con este icono:

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

Tu cliente va a realizar un petición y los resultados se mostrarán en la consola del espacio de trabajo, de esta forma:

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

Has creado un bean y has podido realizarle una petición, Enhorabuena!!

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad
Mantenida por: Claudio y Dani.

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: jugar gratis | amor | navidad 2009 | registro de dominios | servidores dedicados
más internet: comprar | gratis | posicionamiento en buscadores | decoración libre | gifs animados