Introducción
Este primer ejemplo consiste en desplegar y ejecutar un aplicación
J2EE denominada ConverterApp que permite al usuario calcular
conversiones de moneda entre Yen y Eurodollars. ConverterApp
consiste en un EJB de sesión sin estado, que es el que realiza los
cálculos y un cliente Web, que nos permitirá a través de un
navegador acceder a la funcionalidad proporcionada por el EJB
desarrollado. Este cliente Web será un JSP.
El código fuente de la aplicación os lo podeis descargar del
siguiente enlace converter.tgz.
Pasos a realizar
Los pasos que vamos seguir para desarrollar nuestra primera
aplicación J2EE, denominada ConverterApp son los siguientes:
- Arrancar el servidor J2EE
- Crear la aplicación J2EE:
ConverterApp
- Crear el Enterprise Bean:
ConverterBean
- Crear un cliente Web para la aplicación:
ConverterWAR
- Desplegar
ConverterApp en el servidor
Veamos cada uno de ellos detalladamente.
1. Arrancar el servidor J2EE
NOTA: Para facilitar la ejecución de los comandos de J2EE se
recomienda establecer las siguientes variables de entorno:
J2EE_HOME a /usr/local/j2ee , JAVA_HOME a
${J2EE_HOME}/jdk . Y añadir a la variable del entorno
PATH el ${J2EE_HOME}/bin y ${JAVA_HOME}/bin .
Antes de comenzar a crear la aplicación es necesario arrancar el
servidor J2EE, para ello es necesario ejecutar:
$ asadmin start-domain domain1
Podeis comprobar que el servidor se ha arrancado correctamente,
si os conectais al siguiente enlace http://localhost:8888 :
2. Crear ConverterApp
Para crear la aplicación J2EE ConverterApp vamos a utilizar
la herramienta deploytool proporcionada en el J2EE SDK. Para
arrancar la herramienta es necesario ejecutar:
$ deploytool &
Empleamos el deploytool para almacenar la aplicación en un
fichero denominado ConverterApp.ear :
- Selecciona "File -> New -> Application".
- Click en "Browse":
- Seleccionar el directorio en el que habeis descomprimido los
fuentes de la aplicación, por ejemplo:
${HOME}/swc/practicas/converter/
- En el campo "File Name", introducir
ConverterApp.ear
- Click "New Application".
- Click "OK"
- Comprueba que el fichero
ConverterApp.ear existe en
directorio indicado en el paso 2.1
3. Crear ConverterBean
Un Enterprise Bean es un componente en el lado del servidor que
contiene la lógica de negocio de una aplicación. En tiempo de
ejecución, los clientes ejecutan la lógica de negocio invocando los
métodos del enterprise bean. En este primer ejemplo, nuestro
enterprise bean es un bean de sesión sin estado denominado
ConverterBean . El código fuente está en el directorio
src dentro de la carpeta converter .
Para crear el EJB ConverterBean es necesario realizar los
siguientes pasos:
- Codificar las interfaces del Bean y la clase (en este caso se
proporciona el código, por lo que debereis editarlo y comprenderlo):
Converter.java : es en este ejemplo el "remote
interface" que define los métodos de negocio que puede invocar el
cliente. En este caso podeis comprobar que existen dos métodos de
conversión dollarToYen y yenToEuro . Estos métodos se
implementan en el código de la clase del bean.
ConverterHome.java : es en este ejemplo el "home
interface" que define los métodos que le permiten al cliente
crear, buscar y eliminar el bean. En este caso podeis comprobar
que esta interfaz proporciona un único método que permite crear el
bean, devolviendo un objeto que implementa la interfaz remota
definida en Converter.java .
ConverterBean.java : es en este ejemplo el código del
"enterprise bean" que implementa los métodos de negocio definidos
en el interfaz remoto Converter .
- Compilar el código fuente, para ello dentro del directorio
src ejecutad:
javac -classpath ${J2EE_HOME}/lib/j2ee.jar -d ../build *.java
Si este paso se ha realizado correctamente, en el directorio
../build tendreis la siguiente estructura de ficheros:
build +--converter +-- Converter.class
|
+-- ConverterBean.class
|
+-- ConverterHome.class
- Empaquetar el enterprise bean. Para ello vamos a utilizar un
"wizard" proporcionado por el
deploytool . Gracias a este
"wizard", realizaremos las siguientes tareas de forma más
sencilla:
- Crear el descriptor de despliegue del bean.
- Empaquetar el descriptor de despliegue y las clases del bean en
un ficheoro EJB JAR.
- Añadir el fichero EJB JAR en el fichero (
ConverterApp.ear ).
Para ejecutar el "wizard" es necesario seleccionar en el
deploytool "File -> New -> Enterprise Bean". El "wizard"
muestra los siguientes cuadros de dialogo:
- "New Enterprise Bean Wizard - Introduction":
- Leer el texto explicativo que nos indica las tareas que
realiza este "wizard".
- Click "Next".
- "New Enterprise Bean Wizard - EJB JAR":
- En el apartado "JAR Location", seleccionar el botón
etiquetado como "Create NewJAR Module Application" y en el
combobox inferior seleccionar
ConverterApp .
- En el apartado "JAR Naming", introducir en el campo "JAR
Display Name" el valor
ConverterJAR .
- En el apartado "Contents", click "Edit": en el arbol de
"Available Files", localizar el directorio
build/converter y seleccionar los tres ficheros de clase
del bean: Converter.class , ConverterBean.class y
ConverterHome.class y hacer click en "Add" y después en
"OK" para volver a la pantalla anterior.
- Click "Next".
- "New Enterprise Bean Wizard - General":
- En el combobox bajo "Enterprise Bean Class" seleccionar
converter.ConverterBean . Automáticamente en los campos
"Enterprise Bean Name" aparecerá ConverterBean y en
"Enterprise Bean Type" se seleccionará Stateless
Session .
- En el apartado "Remote Interfaces" seleccionar en el
combobox correspondiente a "Remote Home Interface" el valor
converter.ConverterHome y en el combobox correspondiente
a "Remote Interface" seleccionar el valor
converter.Converter .
- Click "Next"
- "New Enterprise Bean Wizard - Configuration Options":
- Click "Next".
- "New Enterprise Bean Wizard - Next Steps":
- Leer el texto en el que se indican las tareas que puede ser
necesario realizar a continuación.
- Click "Finish"
4. Crear el cliente Web ConverterWAR
El cliente Web que vamos a utilizar para interactuar con el EJB
anterior es una página JSP, que podeis encontrar en el directorio
web . Editad este fichero index.jsp y
fijaros sobre todo en el código del método jspInit en
el que podeis ver como se crea un objeto bean, que nos permite
acceder a los métodos de negocio del EJB.
El siguiente paso será empaquetar este cliente Web. Para ello
vamos a utilizar un "wizard" proporcionado por el
deploytool . Gracias a este "wizard", realizaremos las
siguientes tareas de forma más sencilla:
- Crear el descriptor de despliegue del cliente Web.
- Empaquetar el descriptor de despliegue y el cliente Web a un
fichero WAR.
- Añadir el fichero WAR en el fichero (
ConverterApp.ear ).
Para ejecutar el "wizard" es necesario seleccionar en el
deploytool "File -> New -> Web Component". El "wizard"
muestra los siguientes cuadros de dialogo:
- "New Web Application Wizard - Introduction":
- Leer el texto explicativo que nos indica las tareas que
realiza este "wizard".
- Click "Next".
- "New Web Application Wizard - WAR File":
- En el apartado "WAR Location" seleccionar el botón
etiquetado como "Create New WAR Module in Application", y en el
combobox inferior seleccionar
ConverterApp .
- En el apartado "WAR Naming", introducir en el campo "WAR
Name" el valor
ConverterWAR .
- En el apartado "Contents", click "Edit": en el arbol debajo
de "Available Files" localizar el directorio
web y
seleccionar el fichero correspondiente a la aplicación web
index.jsp y hacer click en "Add" y después en
"OK" para volver a la pantalla anterior.
- Click "Next".
- "New Web Application Wizard - Choose Component Type":
- Seleccionar el botón JSP.
- Click "Next".
- "New Web Application Wizard - Component General
Properties":
- En el combobox bajo "JSP Filename", seleccionar
index.jsp . Automáticamente en los campos "Web
Component Name" aparecerá index y en "Web Component
Display Name" aparecerá index .
- Click "Next".
- "New Web Application Wizard - Next Steps":
- Leer el texto en el que se indican las tareas que puede ser
necesario realizar a continuación.
- Click "Finish"
Antes de pasar al despliegue de la aplicación, es necesario realizar
algunos pasos, relacionados con el cliente Web:
- Especificar la referencia del cliente Web al Enterprise Java
Bean: si nos fijamos en el código del JSP, se busca una referencia
al bean mediante el método
lookup :
Object objRef = ic.lookup("java:comp/env/ejb/TheConverter");
Para especificar esta referencia es necesario realizar los
siguientes pasos en el deploytool :
- En el arbol de la aplicación, seleccionar
ConverterWAR .
- Seleccionar la pestaña "EJB Refs".
- Click "Add":
- En el campo "Coded Name", introducir
ejb/TheConverter .
- En el combobox "EJB Type", seleccionar
Session .
- En el combobox "Interfaces", seleccionar
Remote .
- En el campo "Home Interface", introducir
converter.ConverterHome .
- En el campo "Local/Remote Interface", introducir
converter.Converter
- Click "OK".
- Seleccionando la nueva fila añadida, introducir en el campo
"Enterprise Bean Name"
ConverterBean .
- Especificar el "context root" de la aplicación Web: nos permite
establecer un context root para determinar el camino en el servidor
Web en el que estará accesible esta aplicación. Para ello es
necesario realizar los siguientes pasos en el
deploytool :
- En el arbol de la aplicación seleccionar
ConvertApp .
- Seleccionar la pestaña "Web Context".
- En el campo "Context Root", introducir
/converter .
5. Desplegar la aplicación en el servidor J2EE
Antes de pasar al despliegue de la aplicación en el servidor es
necesario mapear los nombres JNDI del bean creado, para ello es
necesario realizar los siguientes pasos:
- En el arbol de la aplicación seleccionar
ConverterApp .
- Seleccionar la pestaña "JNDI Names".
- En el apartado "References" introducir como "JNDI Name" de la
referencia al EJB realizada por el cliente Web
(
ConverterWAR ) el nombre
ConverterBean .
A continuación pasamos a desplegar al aplicación resultante, para
ello es necesario realizar los siguientes pasos:
- En el arbol de la aplicación seleccionar
ConverterApp .
- Seleccionar "Tools -> Deploy".
- En el apartado "Connection Settings" introducir el login y
password del administrador del servidor (login:
admin y
password=admin2004 ).
- En el apartado "Return Client JAR", dejar los campos por
defecto.
- Click "OK".
- En la ventana "Distribute Module" click "Close" cuando finalice
el despliegue.
- Para verificar el despliegue: en el arbol, expandir el nodo de
servidores y seleccionar el host en el que se está ejecutando el
servidor J2EE (localhost). En la tabla "Deployed Objects", debería
aparecer listada la aplicación
ConverterApp y su estado
debería ser "Running".
Ejecución de la aplicación
Para comprobar el funcionamiento de la aplicación creada, vamos a
utilizar el cliente Web, para ello en un navegador nos conectamos a
las URL http://localhost:8888/converter .
|