El siguiente Cliente es un simple programa Java de terminal que genera diversas cuentas bancarias en el EJB descrito anteriormente.
También se recomienda abrir el administrador de Base de Datos HSQL (Hypersonic) de su ambiente para observar los cambios realizados a esta; los parámetros de conexión son: Type : HSQL Database Engine Server Driver: org.hsqldb.jdbcDriver URL : jdbc:hsqldb:hsql://localhost:1701 (Agregar Puerto) La tabla manipulada por el EJB es llamada CUENTAS_BANCARIAS |
Clase ClienteGerente
package com.osmosislatina.ejb.cuenta; import java.util.*; import javax.naming.Context; import javax.naming.InitialContext; import javax.rmi.PortableRemoteObject; public class ClienteGerente { |
public static void main(String[] args) { Properties env = new Properties(); // Definir las propiededes y ubicacion de busqueda de Nombres JNDI. env.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory"); env.setProperty("java.naming.provider.url", "localhost:1099"); env.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming"); |
try { Context initial = new InitialContext(env); Object objref = initial.lookup("BancoDeMexico"); CuentaBancariaHome home = (CuentaBancariaHome)PortableRemoteObject.narrow(objref, CuentaBancariaHome.class); CuentaBancaria juan = home.create("767656", "Juan", "Araiza", 39654.00); juan.deducir(20.20); double balance = juan.getSaldo(); System.out.println("El saldo de Juan es = " + String.valueOf(balance)); CuentaBancaria alexia = home.create("545789", "Alexia", "Veytia", 57434.00); alexia.abonar(603.64); balance = alexia.getSaldo(); System.out.println("El Saldo de Alexia es = " + String.valueOf(balance)); CuentaBancaria hernan = home.create("965789", "Hernan", "King", 9443.00); CuentaBancaria pedro = home.create("859302", "Pedro", "Jimenez", 0.00); CuentaBancaria olga = home.create("744503", "Olga", "Mendoza", 44640.00); balance = olga.getSaldo(); System.out.println("El Saldo de Olga es = " + String.valueOf(balance)); olga.remove(); System.out.println("La cuenta de Olga ya fue eliminada revise la Base de Datos"); CuentaBancaria ignacio = home.create("965784", "Ignacio", "King", 143008.00); |
} catch (SaldoInsuficiente ex) { System.err.println("Caught an SaldoInsuficiente : " + ex.getMessage()); } catch (Exception ex) { System.err.println("Caught an exception." ); ex.printStackTrace(); } |
} } |
La primer sección de este programa importa las clases necesarias para generar el Cliente.
Al iniciarse el método principal se declaran diversas propiedades las cuales son utilizadas para localizar el servidor JNDI que contiene las referencias al EJB.
Utilizando las propiedades anteriores se genera una búsqueda por el EJB llamado
BancoDeMexico
.Una vez encontrada la referencia se genera una instancia del "Home Interface" del EJB, a través de ésta serán generadas las instancias del EJB.
Posteriormente se generan diversas cuentas bancarias y en el proceso se invocan otros métodos que fueron definidos para el EJB.