Struts
Especificación JRS-220
Agenda
• • • • • • •
Introducción Entity Beans Session Beans Message Driven Beans Transacciones Seguridad Otros
Que es Java EE?
• Es una plataforma estándar para el desarollo de aplicaciones multi-capas.
– Es una especificación de servidor de aplicaciones. – Plataforma para desarrollar aplicaciones transaccionales y distribuidas.Arquitectura multi-capas.
Client side Browser HTML Applet Server-side presentation JSP JSP desktop Java Other device J2ME Server-side Business logic EJB EJB Enterprise Information System
JSP
EJB
Arquitectura Java EE
Business server Web tier Web Client browse servlet JNDI JMS JMX
JSP
Stateless Session Stateful Session Bean
Stateless Session Bean
Stateful Session EntityStand alone client
Entity
Entity bean
Entity bean
Java App
DB server database
APIs
• • • • • • • • •
EJB – componentes en el servidor. JNDI – servicio de nombre y directorios. JMS – API de mensajería. JDBC – API de acceso a base de datos. Servlet/JSP – contenido web dinamico JavaMail – envío de mails. JTA – control de transacciones. JCA – connector architecture. CORBA –comuncación cn sistemas legacy.
Un ejemplo introductorio
Tópicos
• Creación de un Entity Bean. • Creación de un Session Bean. • Creación de un Cliente.
Creación de un Entity Bean
• Los Entities son objetos planos con anotaciones de metadata para el ORM.
La clase EB (POJO)
package com.titan.domain import javax.persistence.*; @Entity @Table(name="CABIN") public class Cabinimplements java.io.Serializable{ private int id; private String name; @Id @Column(name="ID") public int getId( ) { return id; } public void setId(int pk) { id = pk; } @Column(name="NAME") public String getName( ) { return name; } public void setName(String str) {name = str; } ...
Archivo de configuración
• La especificación de persistencia require un archivo persistence.xml
java:/DefaultDSCreación de un Session Bean
• Los SBs implementan una interfaz, esta define cuales son los métodos que puede invocar el cliente.
Interfáz remota del SB (POJI)
package com.titan.travelagent; import javax.ejb.Remote; import com.titan.domain.Cabin; @Remote public interface TravelAgentRemote { public void createCabin(Cabin cabin); public Cabin findCabin(int id); }
La clase SBpackage com.titan.travelagent; import javax.ejb.Stateless; import javax.persistence.*; @Stateless public class TravelAgentBean implements TravelAgentRemote{ @PersistenceContext(unitName=”titan”) private EntityManager manager; public void createCabin(Cabin cabin){ manager.persist(cabin); } ... }
Creación de un cliente
.
... public static void main(String [] args){ Context context =getInitialContext(); Object ref = context.lookup(”TravelAgentBean/remote”); TravelAgentRemote tar = (TravelAgentRemote) PortableRemoteObject.narrow(ref, TravelAgentRemote.class) Cabin c = new Cabin(); c.setId(12); c.setName(”Rod”); tar.createCabin(c); ... }
Resumen
• • • • •
Se creó un EB (POJO) Se creó una interfáz remota (POJI) Se creó un SLSB Se creó un cliente que invoca el SLSB Se persisteun autor.
Preguntas?
Laboratorio 1
• Ver la carpeta lab1. • Seguir instrucciones en readme.html
Entity Beans (EB)
Tópicos
• • • • •
EntityManager. Mapeo de objetos persistentes. Relaciones entre Entity Beans. Herencia en Entity Beans. EJB QL.
Persistencia: EntityManager
EntityManager
• Es el servicio central para todas las acciones de persistencia. • Persiste alos EB (POJO). • Administra el ORM entre EB y fuente de datos (BD) • Provee caching y administra la interacción entre EB y servicios transaccionales.
Entities son POJO
• Los EB persisten al momento de asociarse al EntityManager
import javax.persistence.*; @Entity public class Customer { private int id; private String name; .. } Customer cust = new Customer(); cust.setName(”Bill”); No...
Regístrate para leer el documento completo.