En este primer ejercicio probaremos y desplegaremos el bean CustomerEJB. Se trata de un bean de entidad con persistencia gestionada por el contenedor.
Para el ejercicio usaremos el dominio weblogic "ejemplos" creado en el ejercicio anterior. El ejercicio consta de los siguientes pasos:
customer
Vamos a crear la tabla que necesitamos en la base de datos demo
:
1. Descargamos el fichero ejercicio5.zip
, y lo descomprimimos
en el directorio de trabajo $HOME/ejb
2. Se habrá creado el directorio $HOME/ejb/customer
. En
ese directorio se encuentran los subdirectorios java
, xml
y sql
. Dentro del directorio sql
, se encuentra el
script customer.sql
con el que vamos a crear la base de datos.
3. Copiar ese script al directorio $WL_HOME/weblogic700/samples/server/eval/pointbase/tools
% cp customer/sql/customer.sql $WL_HOME/weblogic700/samples/server/eval/pointbase/tools
4. Ejecutamos la aplicación cliente del gestor de bases de datos con la instrucción
% cd $WL_HOME/weblogic700/samples/server/eval/pointbase/tools % ./startPointBaseCommander.sh
Introducimos los siguientes valores
Do you wish to create a "New/Overwrite" Database? [default: N]: Select product to connect with: Embedded (E), or Server (S)? [default: E]: S Please enter the driver to use: [default: [com.pointbase.jdbc.jdbcUniversalDriver]: Please enter the database URL to use: [default: [jdbc:pointbase:server://localhost/sample]: jdbc:pointbase:server://localhost/demo Username: [default: PBPUBLIC]: examples Password: [default: PBPUBLIC]: examples PointBase Commander 4.2ECF build 183 SERVER Interactive SQL command language. Mac OS X/10.1.5(C) Copyright 1998 - 2002 PointBase(R), Inc. All rights reserved SQL>
6. Una vez en la consola SQL, ejecutaremos el comando
SQL > run "customer.sql";
(Recuerda el punto y coma!!). Ahora ya se habrá creado la tabla necesaria para el probar el bean de entidad.
1. Vuelve al directorio ejb
, donde se encuentran todos los ficheros
necesarios para el bean y comprueba que se encuentra el fichero EJB JAR customer-ejb.jar
.
2. Accede desde el navegador a la consola de administración y realiza
el despliegue del bean savingsaccount-ejb.jar
. Debes seleccionar
la opción EJB > Configure a new EJB y pasar directamente
al paso 2 para moverte por el árbol de directorios hasta el directorio
$HOME/ejb/customer
y seleccionar el fichero customer-ejb.jar
.
Selecciona el servidor myserver
y pulsa Configure and Deploy.
1. Añade el directorio WL_HOME/weblogic700/server/bin al path:
% export PATH=$PATH:WL_HOME/weblogic700/server/bin
2. Actualiza las variables del entorno
% . setWLSEnv.sh % export CLASSPATH=$CLASSPATH:.
3. Vuelve al directorio donde se encuentra los fuentes y compila todos los ficheros
% cd $HOME/customer/src % javac *.java
4. Ejecuta la aplicación cliente para añadir registros de customers
% java AddCustomers
5. Ejecuta la aplicación cliente para buscar customers
% java FindCustomer
1. Modifica la aplicación cliente FindCustomer
para que
actualice a False
el valor del campo hasGoodCredit
,
con el método de negocion setHasGoodCredit(False)
.
2. Modifica los ficheros del bean para añadir el campo Integer
edad
, así como los métodos de acceso setEdad(Integer)
y getEdad()
. Debes modificar también el fichero de creación
de la base de datos. Recompila y reconstruye el fichero customer-ejb.jar
.
3. Modifica las aplicaciones clientes AddCustomers
y FindCustomer
para que actualicen e impriman respectivamente la edad del Customer
.
4. Añade un nuevo método de búsqueda
public Collection findByGoodCredit() throws javax.ejb.FinderException;
en la clase CustomerHomeRemote.java. Añade la cláusula EJB-QL correspondiente a esta búsqueda en el fichero ejb-jar.xml:
<query> <query-method> <method-name>findByGoodCredit</method-name> <method-params/> </query-method> <ejb-ql> SELECT OBJECT(c) FROM Customer c WHERE c.hasGoodCredit = TRUE </ejb-ql> </query>
5. Escribe una aplicación cliente que llame a findByGoodCredit()
y muestre todos los customers que tienen ese campo a true.