miércoles, 13 de enero de 2010

Utilizando EJB 3.0 y Java Persistence API (JPA)

Está visto que en esta vida no te lo dan todo hecho

Estoy con las ampliaciones de la práctica de DASDI, que en mi caso mas que ampliaciones son "mejoras" de mi practica.

Despues de muchas vueltas, tengo una aplicación compuesta de 72 archivos para compilar con una gran masa de paquetes y clases, por lo que va siendo hora de echarle un vistazo a todo y ver que se puede agrupar y de que podemos prescindir.

Durante el desarrollo de la tienda virtual me fui dando cuenta de que era mejor agrupar ciertas funciones en una misma clase con varios metodos en vez de utilizar clase por función. Pero la parte de Miis y Jugadores sigue siendo muy redundante.

En la practica 9 se nos explicó como dar rentabilidad transversal a nuestra aplicación con el uso de Enterprise Java Beans (EJB), utilizandolos en la fachada entre la capa de logica o negocio y la capa de presentación.

Para ello añadimos dos nuevos interfaces, uno Local y otro Remote.


package impl.uo.dasdi.business.mii;

import javax.ejb.Local;
import com.dasdi.business.MiisService;

@Local
public interface MiisServiceLocal extends MiisService {
}


La anotación o etiqueta de @Local necesita la importacion de la clase Local de la librería EJB 3; y, como decía al principio, no se nos facilitó la librería EJB, por lo que toca descargarla de Sun Developer Network, y seguir los siguientes pasos:

  1. Descargar los archivos de clases (ejb-3_0-fr-api.zip)
  2. Descomprimir el ZIP, obteniendo la librería JAR ejb-3_0-api.jar
  3. Copiamos la librería a nuestro directorio /lib del proyecto
  4. Abrimos Proyecto en Eclipse (o actualizamos F5 si ya estuviera abierto)
  5. Nos aparecera en la carpeta /lib del explorador de paquetes, pero no estará aún enlazada al proyecto
  6. Botón derecho sobre la librería -> Build Path -> Añadir
  7. Ya está enlazada, por lo que debería salir en References libraries, de nuestro proyecto

Listo! Ya podemos hacer la importación de la clase Local y Remote.


Java Persistence API (JPA)


Para la adaptación de la capa de persistencia mediante el mapeo de dominio necesitamos las librerías y ha ocurrido una cosa similar con la librería de EJB, por lo que hacemos lo mismo:

Accedemos a la pagina de Sun Developer Network correspondiente a JPA donde nos re-dirige a GlassFish para obtener los archivos binarios:

  • Descargamos el paquete v1_ur1 b14 de la web de GlassFish
  • Extraemos el contenido del paquete o bundle para obtener las classes:
  • Abrimos un interprete de comandos: Ejecutar -> cmd
  • Nos situamos en el directorio del archivo descargado glassfish-persistence-installer-v1_ur1-b14.jar
  • Ejecutamos: java -jar glassfish-persistence-installer-v1_ur1-b14.jar
  • Hemos obtenido una carpeta con los JAR de las clases
  • Copiamos la librería toplink-essentials.jar a nuestro directorio /lib del proyecto
  • Actualizamos Proyecto en Eclipse
  • Boton derecho sobre la nueva librería
  • Añadimos al Build Path

Y listo! ya podemos utilizar las clases para el mapeo, en concreto las etiquetas de @Entity, @Id, etc.

No hay comentarios:

Publicar un comentario