integracion-de-ejb3-y-jsf.pdf

12
Integración de EJB3 y JSF Escrito por Adrián Toledo Domingo, 19 de Octubre de 2008 21:32 - Hace un tiempo que salió la versión final de JEE 5, versión que ha traido grandes cambios a la plataforma Java con respecto a la versión anterior. Se ha intentado hacer la plataforma más accesible a los programadores facilitando el desarrollo de las aplicaciones empresariales Java, y tomando como base la configuración por defecto, que tan buenos resultados parece haber generado a la plataforma Ruby on Rails. A pesar del esfuerzo realizado por el grupo de expertos encargado de definir las especificaciones que forman parte de JEE por simplificar el desarrollo de aplicaciones JEE, hay que tener en cuenta que JEE se trata de una plataforma compleja, alrededor de la cual se concentran usa serie de APIs y de conceptos, y que sin un conocimiento medio de éstos será difícil sacar el máximo partido a JEE, por lo que aunque a primera vista parezca sencillo el desarrollo de aplicaciones tendremos que intentar conocer al máximo todo aquello que se mueve a su alrededor si queremos sacar rendimiento a JEE. En este artículo/tutorial voy a intentar mostrar cómo desarrollar un prototipo de aplicación en la que integramos dos tecnologías que forman parte de esta renovada plataforma, EJB3 y Java Server Faces. Para ello voy a utilizar NetBeans 5.5, cuyo equipo también ha realizado grandes esfuerzos por simplificar al máximo el desarrollo de aplicaciones JEE con este IDE. La aplicación (si es que la podemos llamar así ) que vamos a desarrollar no podría ser más trivial, y simplemente se encarga de mostrar un listado de los clientes dados de alta en una base de datos, y da la opción de creación de nuevo clientes. Persistencia En NetBeans 5.5 tenemos integrado el servidor de aplicaciones open source Glassfish, y éste, a su vez, integra el motor de base de datos open source Derby. Glasshfish tiene configurado vía JNDI un acceso a esta base de datos con el nombre jdbc/__default, que es el que vamos a utilizar para desarrollar este proyecto. JPA es el nuevo framework de persistencia de Java, y se basa en gran medida en la solución open source más popular de persistencia que hasta ahora hemos tenido, Hibernate. JPA podemos utilizarlo tanto desarrollando con JEE como con JSE, lo cual supone un gran avance con respecto a cómo se controlaba la persistencia en la versión anterior de J2EE. Cualquier programador que haya trabajado con Hibernate no tendrá ningún problema en utilizar JPA debido a su gran similitud. 1 / 12

Transcript of integracion-de-ejb3-y-jsf.pdf

Page 1: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

Hace un tiempo que salió la versión final de JEE 5, versión que ha traido grandes cambios a laplataforma Java con respecto a la versión anterior. Se ha intentado hacer la plataforma másaccesible a los programadores facilitando el desarrollo de las aplicaciones empresariales Java,y tomando como base la configuración por defecto, que tan buenos resultados parece habergenerado a la plataforma Ruby on Rails.

A pesar del esfuerzo realizado por el grupo de expertos encargado de definir lasespecificaciones que forman parte de JEE por simplificar el desarrollo de aplicaciones JEE, hayque tener en cuenta que JEE se trata de una plataforma compleja, alrededor de la cual seconcentran usa serie de APIs y de conceptos, y que sin un conocimiento medio de éstos serádifícil sacar el máximo partido a JEE, por lo que aunque a primera vista parezca sencillo eldesarrollo de aplicaciones tendremos que intentar conocer al máximo todo aquello que semueve a su alrededor si queremos sacar rendimiento a JEE.

En este artículo/tutorial voy a intentar mostrar cómo desarrollar un prototipo de aplicación en laque integramos dos tecnologías que forman parte de esta renovada plataforma, EJB3 y JavaServer Faces. Para ello voy a utilizar NetBeans 5.5, cuyo equipo también ha realizado grandesesfuerzos por simplificar al máximo el desarrollo de aplicaciones JEE con este IDE. Laaplicación (si es que la podemos llamar así ) que vamos a desarrollar no podría ser más trivial,y simplemente se encarga de mostrar un listado de los clientes dados de alta en una base dedatos, y da la opción de creación de nuevo clientes.

Persistencia

En NetBeans 5.5 tenemos integrado el servidor de aplicaciones open source Glassfish, y éste,a su vez, integra el motor de base de datos open source Derby. Glasshfish tiene configuradovía JNDI un acceso a esta base de datos con el nombre jdbc/__default, que es el que vamos autilizar para desarrollar este proyecto.

JPA es el nuevo framework de persistencia de Java, y se basa en gran medida en la soluciónopen source más popular de persistencia que hasta ahora hemos tenido, Hibernate. JPApodemos utilizarlo tanto desarrollando con JEE como con JSE, lo cual supone un gran avancecon respecto a cómo se controlaba la persistencia en la versión anterior de J2EE. Cualquierprogramador que haya trabajado con Hibernate no tendrá ningún problema en utilizar JPAdebido a su gran similitud.

1 / 12

Page 2: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

Iniciando un nuevo proyecto

Para comenzar un nuevo proyecto JEE con NetBeans vamos seleccionar la opción de menúFile -> New Project. En la parte izquierda de la nueva ventana seleccionaremos Entreprise y acontinuación Enterprise Application. Se nos mostrará un nuevo asistente que deberemosconfigurar del siguiente modo :

Pulsamos Finish y NetBeans nos va a crear toda la estructura básica de nuestra aplicación.Nos creará un directorio global para el proyecto, y dentro de éste, entre otros, habrá undirectorio para el módulo EJB y otro para el módulo Web.

En primer lugar vamos a crear una entidad, que se llamará Cliente. Posteriormente crearemosun Stateless Session Bean para gestionar las posibles operaciones que queramos realizarsobre la entidad Cliente. Con esto ya tendremos configurado nuestro módulo EJB. Dentro denuestro módulo web implementaremos un Managed Bean que utilizará el Stateless SessionBean tanto para listar como para crear clientes, y crearemos dos páginas web, una para listarlos clientes y otra para crear nuevos clientes.

Desarrollando el módulo EJB Entidades

El primer paso es crear una nueva entidad. Java necesita un objeto especial para trabajar conentidades, EntityManager, el cual necesita un fichero de configuración llamado persistence.xml,y en el cuál se configura la conexión a la base de datos. Por lo tanto, cuando creemos a travésde NetBeans una entidad, si no se encuentra el fichero persistence.xml NetBeans nospropondrá la creación del mismo.

Para crear la entidad vamos a hacer click con el botón derecho sobre el módulo EJBGestionClientes-EJBModule, y vamos a seleccionar la opción de menú New -> File/Folder.

2 / 12

Page 3: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

Seleccionamos la categoría Persistence, y en la lista de la derecha hacemos click sobre EntityClass.

Tenemos un nuevo asistente en el que configuraremos el nombre y el paquete de nuestraentidad. En este asistente, una vez hayamos proporcionado el nombre tanto de la entidadcomo del paquete, nos aparecerá un nuevo botón ( Create Persistence Unit ) en la parte inferiordel mismo a través del cual podremos crear el fichero persistence.xml.

El asistente para la creación de la entidad nos quedará del siguiente modo :

Y el asistente para la creación de nuestro fichero persistence.xml nos quedará así :

El Datasource que utilizamos para almacenar nuestras entidades es el que nos proponeNetBeans por defecto, que como comentamos anteriormente es un Datasource que vieneconfigurado de serie en Glassfish y hace referencia a una base de datos Derby.

No es necesario que creemos nosotros las tablas manualmente, ya que el nuevo framework depersistencia de Java JPA podemos configurarlo para que cree las tablas en nuestra base dedatos a partir de nuestras entidades.

3 / 12

Page 4: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

En posteriores artículos intentaré explicar cómo configurar persistence.xml para que almacenenuestros datos en una base de datos MySQL que ya tengamos nosotros creada.

Pulsamos aceptar a los dos asistentes que tenemos abiertos, y modificamos nuestra claseCliente para implementarla del siguiente modo :

package org.monteagudo.entity;

import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;

/** * * @author jlm */@Entitypublic class Cliente {

private Long id; private String nombre; private String apellidos; private String direccion; /** Creates a new instance of Cliente */ public Cliente() { }

@Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; }

public void setId(Long id) { this.id = id; }

public String getNombre() { return nombre; }

4 / 12

Page 5: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

public void setNombre(String nombre) { this.nombre = nombre; }

public String getApellidos() { return apellidos; }

public void setApellidos(String apellidos) { this.apellidos = apellidos; }

public String getDireccion() { return direccion; }

public void setDireccion(String direccion) { this.direccion = direccion; } }

 

Stateless Session Bean

Vamos a crear un Stateless Session Bean para poder hacer operaciones sobre la entidadCliente. Para crear el bean vamos a hacer click con el botón derecho sobre el módulo EJBGestionClientes-EJBModule, y vamos a seleccionar la opción de menú New -> File/Folder.Seleccionamos la categoría Enterprise, y en la lista de la derecha hacemos click sobre SessionBean.

Nos aparece un nuevo asistente para configurar el bean. Lo rellenaremos para que nos quededel siguiente modo :

5 / 12

Page 6: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

Como no necesitamos almacenar ningún estado tanto para listar clientes como para crearnuevos clientes, es evidente que nuestro bean va a ser sin estado, por ello en el campoSession Type elegimos Stateless. En el campo Create Interface podemos elegir Remote, Local o ambas. Si no seleccionamosninguna, el contenedor generará una interfaz local implícitamente en tiempo de ejecución. Elcliente principal de nuestro bean va a ser un Managed Bean del módulo web, es decir, elcliente va a ser una clase que se va a ejecutar en el mismo servidor de aplicaciones, y en lamisma JVM, por lo que vamos a seleccionar que nuestro bean implementa una interfaza Local. Pulsamos Finish, y vemos que NetBeans nos ha creado dos ficheros :

ServicioClientesBean es el bean propiamente dicho que implementa la lógica de negocio, yServicioClientesLocal es una interfaz con una anotación Local ( si no lleva anotación se asumeque es Local ), y que es implementada por nuestro bean. La interfaz va a quedar definida de este modo : package org.monteagudo.service;import java.util.List;import javax.ejb.Local;import org.monteagudo.entity.Cliente;/** * This is the business interface for ServicioClientes enterprise bean. */@Localpublic interface ServicioClientesLocal { public void crearCliente(Cliente cliente); public List<Cliente> listarClientes(); } Y el bean quedará definido de este otro modo : package org.monteagudo.service;import java.util.List;import javax.ejb.*;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;import javax.persistence.Query;import org.monteagudo.entity.Cliente;/** * This is the bean class for the ServicioClientesBean enterprise bean. * Created 16-jul-2006 23:15:44 * @author jlm */@Stateless()public class ServicioClientesBean implements ServicioClientesLocal { @PersistenceContext EntityManager em; public void crearCliente(Cliente cliente) { em.persist(cliente); } public List<Cliente> listarClientes() { Query query = em.createQuery("SELECT c FROM Cliente AS c"); return query.getResultList(); } } Vemos que el bean está anotado como Stateless, lo que identifica al bean como sin estado. Otra característica importante es la anotación PersistenceContext. Cuando anteriormentecreamos la entidad Cliente también configuramos el fichero persistence.xml. Este fichero es elque utiliza el servidor de aplicaciones para crear objetos de tipo EntityManager. Podríamosacceder a estos objetos vía JNDI, pero es recomendado inyectar el EntityManager a través dela anotación PersistenceContext. Una vez tenemos el EntityManager ya vamos a poder realizaroperaciones sobre todas nuestras entidades definidas en nuestra aplicación. Con todo esto ya tendríamos implementado nuestro módulo EJB. Para comprobar si ha idotodo bien podemos hacer un Build de este módulo. Para ello vamos a seleccionar con el botónderecho el módulo del EJB, y vamos a seleccionar la opción Build Project, así veremos si hahabido algún problema con alguna de las clases que hemos definido.  Desarrollando el módulo Web

Antes de comenzar a definir nuestro Managed Bean y nuestras páginas JSF, vamos aconfigurar un par de cosas en el módulo web.

La primera de ellas va a ser indicar a NetBeans que queremos utilizar JSF. Para ello vamos ahacer click con el botón derecho sobre el módulo web GestionClientes-WebModule, ypulsaremos la opción Properties. En la lista de categorías vamos a seleccionar Frameworks,pulsamos sobre el botón Add y seleccionamos Java Server Faces. Aceptamos, y podremoscomprobar que NetBeans, por una parte ha creado el fichero de configuración de JSF,faces-config.xml, y por otra parte ha modificado el fichero web.xml para agregar opciones deconfiguración de JSF.

La segunda tarea que vamos a realizar a nuestro módulo web va a ser decirle que queremosutilizar las clases que hemos desarrollado en el módulo EJB. Para ello vamos a hacer de nuevoclick con el botón derecho sobre el módulo web GestionClientes-WebModule, y pulsaremos laopción Properties. Seleccionamos Libaries y hacemos click al botón Add Project.Seleccionamos GestionClientes-ejb y pulsamos Add Project JAR Files, y después aceptamos.

Ahora ya podemos crear nuestro Managed Bean

6 / 12

Page 7: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

 

Managed Bean

 

Hacemos click con el botón derecho sobre el módulo web GestionClientes-WebModule yseleccionamos New -> File / Folder. Nos vamos a la categoría web y pulsamos sobre JSFManaged Bean. Nos aparece un asistente para la configuración del Managed Bean, el cuáldebemos configurarlo del siguiente modo :

El asistente nos crea una plantilla del bean, el cuál modificaremos para implementarlo así :

package org.monteagudo.web;

import java.util.List;import javax.ejb.EJB;import org.monteagudo.entity.Cliente;import org.monteagudo.service.ServicioClientesLocal;

/** * * @author jlm */public class ClientesManagedBean { private Cliente cliente = new Cliente(); @EJB ServicioClientesLocal servicioClientes;

public Cliente getCliente() { return cliente;

7 / 12

Page 8: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

}

public void setCliente(Cliente cliente) { this.cliente = cliente; } public List<Cliente> getClientes() { return servicioClientes.listarClientes(); } public String crearCliente() { servicioClientes.crearCliente(cliente); return "success"; } }

Como vemos, podemos inyectar al managed bean un EJB que hemos desarrolladoanteriormente en el módulo EJB. Desde entonces podemos utilizar la interfaz como cualquierotra clase dentro del managed bean para crear nuevos clientes y para listar clientes yaexistentes.

 

Páginas JSF

Uno de los últimos pasos que nos queda por realizar es desarrollar dos páginas JSP, así comoconfigurar el fichero faces-config.xml.

Vamos a crear una página que nos va permitir listar todos los clientes existentes en la base dedatos. Hacemos click con el botón derecho sobre el módulo web GestionClientes-WebModule yseleccionamos New -> File / Folder. Nos vamos a la categoría web y pulsamos sobre JSP. Nosaparece un asistente para la configuración del JSP en el que únicamente vamos a indicar elnombre de la página web :

8 / 12

Page 9: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

Como podemos ver, la plantilla que nos ha creado NetBeans no tiene incluidas los taglib deJSF. Vamos a agregarlos manualmente. Como puede resultar un poco difícil acordarse del uride los tags, vamos a ver dónde podemos consultarlos de forma más o menos rápida.Navegamos por la ventana de proyectos hasta los ficheros descriptores de los tag libraries (tld):

Hacemos doble-click sobre el tld y ahí encontraremos las etiquetas short-name y uri, que sonlas que utilizaremos para agregar las taglibs de JSF. Una vez tenemos definidos los taglibs que necesitamos, vamos a crear una tabla JSF paralistar todos los clientes. NetBeans ofrece una paleta de controles básica que nos permite crearuna tabla a partir de una de un objeto java.util.List. Si la paleta de controles no nos aparecieraen el IDE podemos mostrarla seleccionando la opción de menú Window -> Palette. En la paletaseleccionamos el control JSF Data Table y lo arrastramos a la zona de código en la quequeremos mostrar la tabla. Nos aparece un asistente que nos solicita por una parte el EntityBean que queremos representar, y por otra parte el método del Managed Bean que nosdevuelve la lista de clientes. El asistente lo rellenaremos con la siguiente información :

Como podemos observar, el asistente se ha encargado de generarnos de forma automática latabla con toda la información referente a nuestra entidad cliente. Finalmente la página lamodificaremos para que tenga la siguiente forma : <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Listado de Clientes</title> </head> <body> <f:view> <h:form> <h1><h:outputText value="Listado de Clientes"/></h1> <h:dataTable value="#{ClientesManagedBean.clientes}" var="item"> <h:column> <f:facet name="header"> <h:outputText value="Id"/> </f:facet> <h:outputText value="#{item.id}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Nombre"/> </f:facet> <h:outputText value="#{item.nombre}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Apellidos"/> </f:facet> <h:outputText value="#{item.apellidos}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Direccion"/> </f:facet> <h:outputText value="#{item.direccion}"/> </h:column> </h:dataTable> <br/> <h:commandButton action="create" value="Nuevo Cliente"/> </h:form> </f:view> </body> </html> Ahora nos falta crear la página que nos va a permitir crear nuevos clientes. Agregamos lapágina como hicimos con la anterior, y le daremos el nombre crearCliente. Al igual que en lapágina listarClientes utilizamos el control JSF Data Table para que el IDE nos generara elcódigo de la tabla, en esta página vamos a utilizar el control JSF Form para que NetBeans nosgenere el código del formulario de la entidad Cliente. Para ello vamos a selecccionar el controly lo vamos a arrastrar a la zona de la página en la que queremos implementar el formulario. Acontinuación nos aparecerá un asistente, el cuál podemos rellenarlo como sigue :

Del formulario que nos ha creado NetBeans vamos a borrar los datos relativos al Id del Cliente,ya que este campo tiene que estar vacío, y será el framework de persistencia JPA quién nosgenere el nuevo identificador de cliente. Por otra parte, he modificado la propiedad value de los campos inputText que ha generado eldiseñador, y he utilizado directamente la entidad Cliente en lugar de campos individuales en elManaged Bean. De este modo, es diseñador ha creado lo siguiente : <h:inputText id="nombre" value="#{ClientesManagedBean.nombre}" title="Nombre" /> y lo he cambiado por esto otro : <h:inputText id="nombre" value="#{ClientesManagedBean.cliente.nombre}" title="Nombre" /> Tampoco hay que olvidarse de agregar dentro del formulario el botón que se encargará dehacer el submit de los datos. La página, al final, nos tiene que quedar como sigue : <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Nuevo Cliente</title> </head> <body> <f:view> <h2>Nuevo Cliente</h2> <h:form> <h:outputText>Nombre:</h:outputText> <h:inputText id="nombre" value="#{ClientesManagedBean.cliente.nombre}"title="Nombre" /><br> <h:outputText>Apellidos:</h:outputText> <h:inputText id="apellidos" value="#{ClientesManagedBean.cliente.apellidos}"title="Apellidos" /><br> <h:outputText>Direccion:</h:outputText> <h:inputText id="direccion" value="#{ClientesManagedBean.cliente.direccion}"title="Direccion" /><br> <br/> <h:commandButton action="#{ClientesManagedBean.crearCliente}" value="Grabar"/> </h:form> </f:view> </body> </html> Por último, vamos a hacer una pequeña modificación a la página index.jsp, para que al iniciar laaplicación nos redirija hacia la página listarClientes. Así es cómo debería quedar index.jsp : <%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:redirect url="faces/listarClientes.jsp"/>  Configuración de JSF : faces-config.xml

Lo único que nos queda por hacer antes de probar la aplicación es definir el fichero deconfiguración faces-config.xml. Para configurar este fichero NetBeans nos provee una sencillautilidad. Para hacer uso de ella primero tenemos que abrir el fichero faces-config.xml, que seencuentra en la ventana Projects, en el módulo web GestionClientes-WebModule, dentro de lacarpeta Configuration Files. Hacemos doble-click para editarlo, y vemos que ya tenemosdefinido el Managed Bean que habíamos creado.

El siguiente paso es definir las reglas de navegación. Vamos a hacer click con el botón derecho

9 / 12

Page 10: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

sobre la ventana de código de este fichero, seleccionamos la opción de menú Java ServerFaces y a continaución Add Navigation Rule. Hacemos un browse, seleccionamos la páginalistarClientes y pulsamos Add.

Aviso : A mí, en ciertas ocasiones, se me bloquea NetBeans cuando agrego las reglas denavegación a través del asistente, por lo tanto y por si acaso es conveniente grabar el proyectoantes de continuar. Hay que tener en cuenta que estamos ante una versión beta, por lo queeste tipo de cuelgues puede pasar.

Ahora, dentro del código que nos ha generado ( entre las etiquetas navigation-rule ), volvemosa hacer click con el botón derecho, seleccionamos Add Navigation Case, y rellenamos lainformación que nos solicita el asistente del siguiente modo :

Ya sólo nos faltaría agregar otra regla de navegación para la página crearCliente. Al final, elfichero faces-config.xml nos quedará configurado del siguiente modo :

<?xml version='1.0' encoding='UTF-8'?>

<!-- =========== FULL CONFIGURATION FILE================================== -->

<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"> <managed-bean> <managed-bean-name>ClientesManagedBean</managed-bean-name>

10 / 12

Page 11: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

<managed-bean-class>org.monteagudo.web.ClientesManagedBean</managed-bean-class> <managed-bean-scope>request</managed-bean-scope> </managed-bean>

<navigation-rule> <from-view-id>/listarClientes.jsp</from-view-id> <navigation-case> <from-outcome>create</from-outcome> <to-view-id>/crearCliente.jsp</to-view-id> <redirect/> </navigation-case> </navigation-rule>

<navigation-rule> <from-view-id>/crearCliente.jsp</from-view-id> <navigation-case> <from-outcome>success</from-outcome> <to-view-id>/listarClientes.jsp</to-view-id> <redirect/> </navigation-case> </navigation-rule>

</faces-config>

 

Probando el Proyecto

Ya sólo nos queda probar que todo funcione correctamente. Para ello vamos a hacer un builddel proyecto. En la solapa Projects seleccionamos GestionClientes con el botón derecho yhacemo click sobre build.

A continuación iniciamos la base de datos Derby. Vamos al menú Tools, Derby Database yseleccionamos Start Derby Server.

Y por último seleccionamos de nuevo el proyecto GestionClientes con el botón derecho yclickamos sobre Run Project, y si todo ha funcionado correctamente tendría que abrirse en el

11 / 12

Page 12: integracion-de-ejb3-y-jsf.pdf

Integración de EJB3 y JSF

Escrito por Adrián ToledoDomingo, 19 de Octubre de 2008 21:32 -

navegador la página listarClientes que hemos diseñado anteriormente.

Conclusión

Hemos visto una forma sencilla de trabajar con EJB3 y Java Server Faces con la ayuda deNetBeans. Vemos que la complejidad a la hora de programar se ha reducido bastante conrespecto a la versión 2.1 de EJB, pero conviene tener en cuenta que alrededor de todo lo quehemos visto existe un conglomerado de APIs que conviene controlar para poder sacar elmáximo partido a JEE.

En esta aplicación hemos trabajado con las configuraciones por defecto que nos propone laplataforma, por lo cual no resulta complejo poner a funcionar este prototipo. Pero no sólo enesto se basa JEE, tenemos servicios y APIs tales como JMS, JTA, Security, Web Services,interceptores, etcétera, que debemos conocer si queremos obtener toda la potencia que JEEnos puede ofrecer.

Fuente www.jroller.com

12 / 12