Aplicación Java EE de ejemplo para mostar el uso de
las entidades JPA y los Enterprise JavaBeans en la
capa de negocio
Índice de contenido
Aplicación Java EE de ejemplo para mostar el uso de las entidades JPA y los
Enterprise JavaBeans en la capa de negocio.........................................................1
Recursos a utilizar.............................................................................................1
Descripción del proyecto NetBeans...................................................................1
Descripción de la aplicación de ejemplo............................................................1
Parte Servidor................................................................................................2
Parte Cliente..................................................................................................2
Compilación y Ejecución....................................................................................3
Paso previo: creación de la base de datos.....................................................3
Compilación y Ejecución de los Proyectos......................................................3
Recursos a utilizar
● Proyecto NetBeans
● Descarga: EjemploPedidos.tgz EjemploPedidos.zip
● Definición de la BD
● Descarga: SCS_PEDIDOS.sql
Descripción del proyecto NetBeans
● Proyecto principal
● Nombre: EjemploPedidos
● Tipo: Enterprise Application
● Compuesto de dos módulos EE (subproyectos 1 y 2)
● Subproyecto 1:
● Nombre: EjemploPedidos-app-client
● Tipo: Enterprise Application Client
● Subproyecto 2:
● Nombre: EjemploPedidos-ejb
● Tipo: EJB Module
Descripción de la aplicación de ejemplo
La aplicación es un sistema de gestión de pedidos simplificado, donde hay
Clientes, Artículos y Pedidos (junto con sus Lineas de Pedido). El modelo de datos
se corresponde con el diagrama ER siguiente:
Parte Servidor
La aplicación consta de una parte servidor que corresponde con el proyecto
EjemploPedidos-ejb. El código está estructurado en 2 paquetes:
● entidades: Contiene las entidades JPA que encapsulan las tablas de la base
de datos
● Clases: Cliente.java, Articulo.java, Pedido.java y LineaPedido.java
● ejb: Contiene un conjunto de EJBs que implementan la lógica de la aplicación,
y que junto con sus respectivos interfaces remotos ofrecen la “fachada” con
la que interactuan los clientes.
● 3 EJB sin estado (@Stateful) que gestionan búsquedas, altas, bajas y
modificaciones en las tablas Cliente, Articulo y Pedido
● ArticuloFacade.java (y su interfaz ArticuloFacadeRemote)
● ClienteFacade.java (y su interfaz ClienteFacadeRemote)
● PedidoFacade.java (y su interfaz PedidoFacadeRemote)
● 1 EJB con estado (@Stateles) que simula un diálogo de compra en una
tienda electrónica, implementando un “carrito de la compra” donde se
van añadiendo artículos.
● CarritoCompraBean.java (y su interfaz CarritoCompraRemote)
Parte Cliente
La parte cliente se corresponde con el proyecto EjemploPedidos-app-client. Se
trata de un cliente Java EE en modo texto donde se muestra la interacción con
los EJBs que foman el interfaz de negocio de la aplicación.
Se crean varias instancias objetos de tipo Cliente y Artículo y un Pedido junto con
sus Lineas de Pedido haciendo uso de los Stateless EJBs. Se muestra tambińe un
ejemplo de sesión con el Stateful EJB CarritoCompra.
El cliente debe ejecutarse dentro de un contenedor de clientes JEE, dado que usa
las anotaciones @EJB para indicar los atributos donde espera que le sean
inyectadas las referencias los stubs de los EJB remotos.
Compilación y Ejecución
Paso previo: creación de la base de datos
● Crear un usuario “scs” con passwrod “scs” en el servidor MySQL
Desde línea de comandos (por defecto el root de MySQL no tiene
password):
$ mysql --user=root
mysql> GRANT ALL PRIVILEGES ON *.* TO 'scs'@l'ocalhost'
IDENTIFIED BY 'scs' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'scs'@'%'
IDENTIFIED BY 'scs' WITH GRANT OPTION;
mysql> exit
● Crear la base de datos “scs_pedidos” a partir de su definción SQL
Desde línea de comandos:
$ mysql --user=scs --password=scs < SCS_PEDIDOS.sql
Compilación y Ejecución de los Proyectos
La compilación, despliegue y ejecución de los proyectos se hará directamente
desde NetBeans.
Para arancar NetBeans en las máquinas del laboratorio:
$/home/alumno/netbeans-6.1/bin/netbeans &
1. Abrir proyecto
File -> Open Project [asegurarse de marcar la opción “Open Required
Proyect”]
2. Compilar proyecto
Sobre el nombre del proyecto principal en el árbol de proyecots, o sobre el
nombre de uno de los 2 módudos: [botón derecho] -> Build
3. Desplegar componenetes (EJB y aplicación cliente) en GlassFish
Sobre el nombre del proyecto principal:
[botón derecho] -> Undeploy and Deploy
● Si no está arrancado GlassFish lo hará NetBeans al desplegar el
proyecto
● Para arancar GlassFish manualmente, desde terminal:
$/home/alumno/SUNWappserver/bin/asadmin start-domain
domain1
● Se puede comprobar el despliegue de la aplicación desde la página
de administración de GlashFish
Abrir en un navegador: http://localhost:4848
Login: admin
Password: adminadmin
Abrir el árbol “Application->Enterprise Application”
4. Ejecutar el cliente JEE
Sobre el nombre del proyecto principal:
[botón derecho] -> Run
Otra opción para ejecutar el cliente JEE:
1. Desde el interfaz de administración de GlassFish, ir a “Application-
>Enterprise Application->EjemploPedidos”
2. Descargar el fichero “EjemploPedidos-app-client.jar” pinchado en
“Download Client Stubs”
3. Ejecutarlo con la herramienta app-client de GlashFish, desde linea de
comandos:
$ /home/alumno/SUNWappserver/bin/app-client -client
EjemploPedidos-app-client.jar