guia de laboratorio n° 8...

22
UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS PROGRAMACION PARA DISPOSITIVOS MOVILES PDM115 Ciclo I-2014 GUIA DE LABORATORIO N° 8 A(Netbeans-java,Glassfish) Objetivo: Crear servicios web utilizando la arquitectura SOA y REST, para obtener información desde un servidor web glassfish. Requerimientos previos: JDK (Java Development Kit) versión 7 update 17 IDE NetBeans 7.3 con módulos para desarrollo en JavaEE y ambiente de desarrollo utilizando GlassFish 3.1.2.2 https://netbeans.org/downloads/7.3/index.html Servidor de Aplicaciones GlassFish 3.1.2.2 configurado para entorno de producción

Upload: nguyenxuyen

Post on 28-Sep-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD DE EL SALVADOR

FACULTAD DE INGENIERIA Y ARQUITECTURA

ESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOS

PROGRAMACION PARA DISPOSITIVOS MOVILES

PDM115

Ciclo I-2014

GUIA DE LABORATORIO N° 8 A(Netbeans-java,Glassfish)

Objetivo: Crear servicios web utilizando la arquitectura SOA y REST, para obtener información desde un

servidor web glassfish.

Requerimientos previos:

JDK (Java Development Kit) versión 7 update 17

IDE NetBeans 7.3 con módulos para desarrollo en JavaEE y ambiente de desarrollo

utilizando GlassFish 3.1.2.2

https://netbeans.org/downloads/7.3/index.html

Servidor de Aplicaciones GlassFish 3.1.2.2 configurado para entorno de producción

Contenido Objetivo: ............................................................................................................................................... 1

Requerimientos previos: ....................................................................................................................... 1

Servicio Web SOAP ............................................................................................................................. 1

1. Crear el Proyecto .......................................................................................................................... 1

2. Levantar el Servidor Web Glassfish ............................................................................................. 4

3. Servicio Web Soap ....................................................................................................................... 6

4. Despliegue(Deploy) el Proyecto ................................................................................................ 10

5. Prueba del Servicio ..................................................................................................................... 11

Servicio Web Restful ......................................................................................................................... 14

1. Creación ..................................................................................................................................... 14

2. Modificar El código del servicio ............................................................................................... 16

3. Ejecución y prueba el servicio. .................................................................................................. 19

4. Construir el archivo WAR .......................................................................................................... 19

5. Subir los archivos como se le indica .......................................................................................... 20

Comprimir el proyecto y subirlo en el primer link......................................................................... 20

Subir por separado el archivo war(sin compresión) en el segundo link ......................................... 20

1

Servicio Web SOAP

1. Crear el Proyecto

Como primer paso ejecutamos NetBeans IDE y dentro del menú “Archivo” seleccionamos

“Proyecto Nuevo”

Con esto se abrirá una ventana donde establecemos el tipo de proyecto, seleccionamos “Java Web”,

“Web Application” y presionamos el botón “siguiente”:

En la siguiente ventana establecemos el nombre y la ubicación del proyecto, Definimos el nombre

CarnetWebApplication, luego presionamos el botón “Next”(siguiente):

2

A Continuación establecemos el servidor de aplicaciones GlassFish 3.1.2, luego presionamos el

botón “Next”(siguiente)

3

Por último podemos seleccionar un Framework, para nuestro caso dentro del desarrollo de esta guía

no aplica, por lo tanto presionamos el botón “Finish”(Terminar)

Una vez creado tendremos la siguiente estructura dentro de la vista de Proyectos:

4

Podemos ver que por default ya aparece un servicio web creado que contiene un hola mundo

2. Levantar el Servidor Web Glassfish Iremos a la pestaña de Services, y buscamos Glassfish presionamos clic derecho y luego iniciar,

Si tenemos seguridad(firewall u otros programas) en nuestra pc, debemos de permitir que el glassfish

tenga acceso a los recursos.

5

6

3. Servicio Web Soap

Podemos ver que aparece en Servicios la carpeta de servicios web, esperando que hagamos nuestro

primer servicio.

Servicio Web(Suma)

Entramos a la pestaña “Projects” y buscamos “Source Packages”, luego presionamos clic derecho, New,

Web Service..

7

Se le definen las siguientes características:

Por default aparece la ventana source, presione clic en design.

8

Si no aparece. Se podría presionar clic derecho en el nombre de la clase CarnetSuma, clic en editors y

luego clic en Design.

Presionamos clic en add operation, Escribimos como nombre “sumadosnumeros”, Presionamos Add para

incorporar parámetros(sumando1(int),) sumando2(int) y total (String).

Presionamos Ok para finalizar.

9

Modifique el código en la ventana source y luego guarde:

10

4. Despliegue(Deploy) el Proyecto

En la etiqueta de Projects ,presione clic derecho deploy

Esperamos hasta que aparezca la generación correcta.

11

Verificamos en la pestaña de servicios que ya se encuentra el servicio levantado, si no aparece, presione

clic derecho, actualizar sobre carpeta servidores.

5. Prueba del Servicio

Presionamos clic derecho sobre el servicio web, clic en Test con esto se cargara el browser con la url de

prueba

http://localhost:8080/CarnetWebApplication/CarnetSuma?Tester

12

Escribimos los primeros dos parámetros y presionamos el botón “sumadosnumeros”

Al ejecutarlo podemos ver: Las definiciones de parámetros, Método retornado,

13

El Request

Y el response

Puedes probar el servicio web de tu compañero desde el browser, poniendo la ip en lugar de localhost:

http://localhost:8080/CarnetWebApplication/CarnetSuma?Tester

Esto funcionara siempre y cuando exista conectividad entre las dos pc`s.

Además pruébelo con la herramienta SoapUI, esto debido a que muchos servicios web SOAP, tienen

particularidades por las que no podrían ser probados directamente en el browser.

14

Servicio Web Restful

1. Creación

En el proyecto anterior , dentro del paquete sv.edu.ues.fia.carnetfunciones, presione clic derecho, nuevo,

restful web service.

15

Seleccionamos Simple root Resource

Presionamos Siguiente

16

Definimos un nombre para el servicio:NumeroEnLetrasResource

Y presionamos terminar.

2. Modificar El código del servicio

Agregamos el siguiente código(debajo del paquete):

package sv.edu.ues.fia.carnetfunciones;

import java.io.StringWriter;

import javax.ws.rs.core.Context;

import javax.ws.rs.core.UriInfo;

import javax.ws.rs.PathParam;

import javax.ws.rs.Consumes;

import javax.ws.rs.PUT;

import javax.ws.rs.Path;

import javax.ws.rs.GET;

import javax.ws.rs.Produces;

import javax.xml.bind.JAXB;

/**

* REST Web Service

17

*

* @author win7

*/

@Path("generic")

public class NumeroEnLetrasResource {

@Context

private UriInfo context;

/**

* Creates a new instance of NumeroEnLetrasResource

*/

public NumeroEnLetrasResource() {

}

/**

* Retrieves representation of an instance of

sv.edu.ues.fia.carnetfunciones.BienvenidoRESTResource

* @return an instance of java.lang.String

*/

@GET

@Path("{numero}")

@Produces("application/xml")

public String getXml(@PathParam("numero")int numero) {

//TODO return proper representation object

String numeroString="";

switch(numero){

case 1:

numeroString="uno";

break;

case 2:

numeroString="dos";

break;

case 3:

numeroString="tres";

break;

case 4:

numeroString="cuatro";

break;

case 5:

numeroString="cinco";

break;

case 6:

numeroString="seis";

break;

case 7:

numeroString="siete";

18

break;

case 8:

numeroString="ocho";

break;

case 9:

numeroString="nuevo";

break;

default:

numeroString="No es un digito";

break;

}

String mensaje=numeroString;

StringWriter writer=new StringWriter();

JAXB.marshal(mensaje, writer);

return writer.toString();

}

}

Breve explicacion del codigo.

La anotación @Path sirve para indicar la URI del servicio web, esta URI es concatenada a la URL

del proyecto web.

Para el ejemplo es @Path{“generic”}, que significa entonces que podremos acceder al servicio web

con la siguiente direccion:

localhost:8080/<NombreProyecto>/webresources/<Pathdefinido> para el ejemplo

localhost:8080/CarnetWebApplication/webresources/generic

@Path junto @PathParam sirven para indicar que vamos a pasar parametros dentro de la URL,para

este servicio web por ejemplo si deseamos saber cual es el equivalente de 6 en letras, deberemos de

indicar la siguiente dirección:

http://localhost:8080/CarnetWebApplication/webresources/generic/6

La anotación @GET nos dice que el metodo sera acccesado mediante el metodo GET del protocolo

HTTP.

La anotacion @Produces indica el tipo de contenido que se va a retornar al cliente.

La clase JAXB nos ayuda con la conversion de nuestra respuesta a XML.

19

3. Ejecución y prueba el servicio.

Hacemos click derecho sobre el proyecto y hacemos click en “Deploy”.

Para probar nuestra aplicación, abrimos el navegador y escribimos la dirección siguiente:

http://localhost:8080/CarnetWebApplication/webresources/generic/2 Se debería de obtener un resultado como el siguiente:

4. Construir el archivo WAR

Presionar clic derecho en el proyecto y presionar clean and build

20

5. Subir los archivos como se le indica

Comprimir el proyecto y subirlo en el primer link

Subir por separado el archivo war(sin compresión) en el segundo link Busque el archivo

Súbalo