Construyendo Una Aplicación Con JavaFX y Java EE 7

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 8

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

Construyendo una Aplicacin con JavaFX y Java EE 7

Propsito
Este tutorial abarca el construir una aplicacin de escritorio con JavaFX 2.0 y Scene Builder. Adems de cmo construir un servicio web RESTful que provea la informacin a la aplicacin de escritorio.

Tiempo para completarlo


Aproximadamente 90 minutos

Introduccin
JavaFX es una herramienta que permite a los desarrolladores crear aplicaciones de las llamadas rich internet applications (RIAs). JavaFX est diseada para proveer una plataforma ligera y acelerada de grficos para aplicaciones de negocio empresariales, al mismo tiempo que permite a los desarrolladores crear sus aplicaciones completamente en el lenguaje de programacin Java. En este tutorial hars y aprenders lo siguiente: Del lado del servidor: 1. Crear un servicio web RESTful que se conecta a una BD para extraer la informacin que publicar como servicio web. Para esto crears adems del servicio web una entidad Customer y un EJB CustomerFacade para obtener los datos de la base de datos. 2. Correr el servicio web localmente Del lado del cliente: 1. Crear la UI usando Scene Builder de la aplicacin 2. Crear la lgica de la aplicacin al crear varias clases de ayuda como la clase Customer, la clase CustomerMessageBodyReader que har el parsing de la informacin JSON (utilizando la nueva API en Java EE7) recibida del servicio web. Adems de la clase SampleController , clase que concentra la lgica de la aplicacin y que utiliza el nuevo cliente de REST de Java EE7 para comunicarse con el servicio web.

Requerimientos de Software y Hardware


La siguiente es la lista de requerimientos de hardware y software: JDK 7 (lo puedes obtener aqu) JavaFX Scene Builder (lo puedes obtener aqu) NetBeans 7.3, con Java EE 7 y GlassFish 4.0 (lo puedes obtener aqu. Asegrate de seleccionar la casilla de GlassFish durante la instalacin)

Prerrequisitos
Antes de iniciar este tutorial, tu deberas: Tener JDK 7 instalado. Tener JavaFX Scene Builder instalado. Haber instalado NetBeans 7.3 con Java EE 7 incluyendo GlassFish 4.0 y asegurarse que est abierto y corriendo.

En esta seccin crears un servicio RESTful que provea la informacin a la aplicacin de escritorio.

Creando el Proyecto
1. En NetBeans, selecciona File > New Project.

2. En la ventana New Project, realiza los siguientes pasos: a. Selecciona Java Web en Categories. b. Selecciona Web Application en Projects. c. Haz click en Next.

1 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

3. En la ventana New Web Application, introduce ServerSide como el nombre del proyecto y haz click en Next.

4. En la ventana New Web Application, haz click en Finish.

2 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

Despus de este paso, el proyecto se crea en NetBeans.

Creando la Clase Entity


En esta seccin crears una clase Entity de la tabla Customers, que se encuentra en la base de datos de ejemplo que ya se encuentra en NetBeans. 1. Haz clic derecho en la carpeta Sources Packages y selecciona New > Other...

2. En la ventana New File, realiza los siguientes pasos: a. Selecciona Persistence en Categories. b. Selecciona Entity Classes from Database en File Types. c. Haz click en Next.

3 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

3. En la ventana New Entity Classes from Database, realiza los siguientes pasos: a. Selecciona jdbc/sample en Data Source. Esta es la BD de ejemplo que ya viene en NetBeans por default. b. Selecciona la tabla CUSTOMER en Selected Tables. Esta es la nica tabla de la BD que se usar. c. Asegrate que la casilla Include Related Tables no est seleccionada. CUSTOMER inicialmente est ligada con otras dos tablas: DISCOUNT_CODE y MICRO_MARKET, pero no las usaremos en este caso. d. Haz click en Next.

4. En la ventana New Entity Classes from Database, realiza los siguientes pasos: a. Introduce com.samples.entity en Package. b. Asegrate que las primeras dos casillas no esten seleccionadas. No se usarn ni Named Queries ni JAXB en este caso. d. Haz click en Finish.

4 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

Despus de este paso NetBeans crea la clase entity Customer.java dentro de la carpeta com.samples.entity:

Creando el Servicio RESTful


En esta seccin crears el servicio web RESTful, que expone la infomacin de la tabla CUSTOMER en formato JSON. 1. Haz clic derecho en el proyecto y selecciona New > Other... 2. En la ventana New File, realiza los siguientes pasos: a. Selecciona Web Services en Categories. b. Selecciona RESTful Web Services from Patterns en File Types. c. Haz click en Next.

3. En la ventana New RESTful Web Services from Patterns, haz click en Next.Vamos a utilizar la opcin por default: Simple Root Resource. 4. En la ventana New RESTful Web Services from Patterns, realiza los siguientes pasos: a. Introduce com.samples.rest en el campo Resource Package. b. Introduce customer en el campo Path. c. Introduce CustomerREST en el campo Class Name. d. Selecciona application/json en MIME Type. e. Haz click en Finish.

5 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

Despus de este paso NetBeans crea la clase CustomerREST.java dentro de la carpeta com.samples.rest. Adems crea la clase ApplicationConfig.java, dentro de la misma carpeta. 5. En la clase CustomerREST introduce el siguiente cdigo: @Inject private CustomerFacade customerFacade;

Presiona Ctrl+Shift+I para resolver los imports que se necesitan. Sin embargo en este punto la clase CustomerFacade an no se puede resolver, ya que se crear en un paso mas adelante. 6. En la misma clase CustomerREST, realiza lo siguientes cambios al mtodo getJson, adems de agregar un nuevo mtodo llamado findByName: @GET @Produces({"application/json"}) public List<Customer> getJson() { return customerFacade.findAll(); } @GET @Path("/search/{name}") @Produces({"application/json"}) public List<Customer> findByName(@PathParam("name") String name) { return customerFacade.findByName(name); }

Presiona Ctrl+Shift+I para resolver los imports que se necesitan. 7. Haz clic derecho en la carpeta com.samples.rest y selecciona New > Other... 8. En la ventana New File, realiza los siguientes pasos:

6 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

c. Haz click en Next.

9. En la ventana New Session Bean, introduce CustomerFacade en el campo EJB Name y haz click en Finish.

NetBeans crea un bean Stateless en el proyecto, es decir, un bean que no mantiene un estado. Este bean ser la interfaz con la base de datos y sus operaciones. 10. Agrega el siguiente cdigo a CustomerFacade: @PersistenceContext(unitName = "ServerSidePU") private EntityManager em; public List<Customer> findAll() { return em.createQuery("select c from Customer c").getResultList(); } public List<Customer> findByName(String name) { return em.createQuery("select c from Customer c where UPPER(c.name) LIKE :custName"). setParameter("custName", "%" + name.toUpperCase() + "%").getResultList(); }

7 de 8

29/01/2014 12:12 p.m.

Construyendo una Aplicacin con JavaFX y Java EE 7

http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/javafx...

En este archivo, se crea un EntityManager que se asocia con un Persistence Context y un Persistence Unit (PU) denominado ServerSidePU. El PU est definido en el archivo persistence.xml. Se crean adems dos mtodos: findAll y findByName. El primer mtodo regresa todos los datos de la tabla Customer y el segundo regresa solo los nombres que coincidan con el parmetro enviado. 11. Es momento de ejecutar el servicio web. Haz clic derecho en el proyecto y selecciona Run.

GlassFish empieza a correr y el proyecto es instalado en GlassFish. Una ventana del explorador se abre. con la direccin http://localhost:8080/ServerSide. 12. Escribe la siguiente direccin en el explorador que se abri al correr en proyecto en el paso anterior: http://localhost:8080/ServerSide/webresources/customer.

Al introducir esta URL en el explorador se invoca el mtodo getJson() de CustomerREST. 13. Escribe la siguiente direccin en el explorador: http://localhost:8080/ServerSide/webresources/customer/search/John.

Al introducir esta URL en el explorador se invoca el mtodo findByName() de CustomerREST, envindole como parmetro el nombre de John para su bsqueda.

8 de 8

29/01/2014 12:12 p.m.

También podría gustarte