manual de creación y uso de web service soap

14
Por: Héctor Garduño Real Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST 31 de enero de 2015 Página 1 de 14 Manual de creación y uso de Web Service SOAP REQUERIMIENTOS PREVIOS Se requiere instalar el IDE NetBeans 8.0.2, para lo cual se debe ir al sitio web https://netbeans.org/ y descargar el paquete “Java EEo el paquete “All, ya que son los que incluyen el servidor web de aplicaciones GlassFish, JEE (para usar jsp), y HTML, todos ellos necesarios para realizar la creación del webservice. De no contar con JDK (Java Development Kit), debe ser instalado previo a la instalación de NetBeans, ya que es el que provee las he- rramientas de desarrollo para éste IDE. JDK se puede descargar desde www.oracle.com donde también hay disponible una versión de NetBeans que incluye JDK. 1. CREACIÓN DE UN SERVICIO WEB 1.1. Creación del nuevo proyecto Una vez abierto NetBeans se debe crear un nuevo proyecto el cual contendrá el sitio web de la aplicación y el servicio web. Para ello se debe dirigir al menú superior y dar clic en “File”, posteriormente dar clic en “New Project…lo cual abrirá un cua- dro de diálogo. Ya que lo que se pretende es realizar un servicio web, al crear el proyecto, en el primer paso (Elección del proyecto) se debe elegir la categoría “Java Web” y del lado derecho, en tipos de proyectos seleccionar “Web Application”. Una vez hecho esto es necesario dar clic en el botón [Next] para continuar con el proceso. Este manual será guiado usando como ejemplo un gene- rador de CURP para ciudadanos mexicanos, equivalente al DNI en otros países. Así pues, para el segundo paso Pantalla 1. Inicialización de NetBeans Pantalla 2. Creación de un nuevo proyecto Pantalla 3. Elección de tipo de proyecto a crear

Upload: hector-garduno-real

Post on 09-Feb-2017

486 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 1 de 14

Manual de creación y uso de Web Service SOAP

REQUERIMIENTOS PREVIOS

Se requiere instalar el IDE NetBeans 8.0.2, para lo cual se debe ir

al sitio web https://netbeans.org/ y descargar el paquete “Java EE”

o el paquete “All”, ya que son los que incluyen el servidor web de

aplicaciones GlassFish, JEE (para usar jsp), y HTML, todos ellos

necesarios para realizar la creación del webservice.

De no contar con JDK (Java Development Kit), debe ser instalado

previo a la instalación de NetBeans, ya que es el que provee las he-

rramientas de desarrollo para éste IDE. JDK se puede descargar

desde www.oracle.com donde también hay disponible una versión de NetBeans que incluye JDK.

1. CREACIÓN DE UN SERVICIO WEB

1.1. Creación del nuevo proyecto

Una vez abierto NetBeans se

debe crear un nuevo proyecto el

cual contendrá el sitio web de la

aplicación y el servicio web.

Para ello se debe dirigir al menú

superior y dar clic en “File”,

posteriormente dar clic en “New

Project…” lo cual abrirá un cua-

dro de diálogo.

Ya que lo que se pretende es

realizar un servicio web, al crear

el proyecto, en el primer paso

(Elección del proyecto) se debe

elegir la categoría “Java Web” y del lado derecho, en

tipos de proyectos seleccionar “Web Application”. Una

vez hecho esto es necesario dar clic en el botón [Next]

para continuar con el proceso.

Este manual será guiado usando como ejemplo un gene-

rador de CURP para ciudadanos mexicanos, equivalente

al DNI en otros países. Así pues, para el segundo paso

Pantalla 1. Inicialización de NetBeans

Pantalla 2. Creación de un nuevo proyecto

Pantalla 3. Elección de tipo de proyecto a crear

Page 2: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 2 de 14

de la creación del proyecto, se deben escribir

el nombre que se le designará al proyecto

para que el usuario lo identifique mejor, en

este caso se nombrará como “Generador-

CURP”. Opcionalmente se puede definir

otra ubicación para guardar el proyecto

usando el botón [Browse…], teniendo en

cuenta el cambio de ruta no afectará al pro-

yecto. Así mismo, al crear el servicio web se

producirán dependencias de librerías, y en

caso de que se desee ubicarlas en una carpeta

en específico habrá que activar e indicar la

ubicación para almacenarlas. Una vez de-

finidos los parámetros deberá darse clic en el botón [Next >].

El tercer paso se debe definir el ser-

vidor sobre el que se ejecutará el servicio web

así como la versión de Java EE que se desee

usar para el desarrollo. Si se emplea la última

versión de NetBeans se pueden emplear los

valores por defecto, es decir, servidor web

“GlasFish Server 4.1” y la plataforma “Java

EE 7 Web” y dar clic en el botón [Next >].

En el cuarto y último paso se debe in-

dicar si se desea emplear un framework para

el desarrollo del proyecto, pero ya que este

manual aborda un ejemplo básico, no es ne-

cesario hacer la selección de ninguno de ellos, con lo cual se puede dar clic en el botón [Finish] para

que comience la generación del proyecto, es decir, la estructura de carpetas y archivos esenciales

necesarios del proyecto. Una vez finalizada la creación del proyecto, deberá aparecer el proyecto

recién creado en el panel izquierdo dentro de la pestaña “Projects”.

Pantalla 4. Nombrar y establecer ubicación del proyecto

Pantalla 5. Selección de frameworks del nuevo proyecto

Pantalla 6. Creación del proyecto en proceso Pantalla 7. Despliegue de proyecto recién creado

Page 3: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 3 de 14

1.2. Creación del nuevo servicio web

A continuación se creará el servicio web. Para

ello será necesario dar clic derecho sobre el proyecto,

y en el menú contextual desplegado deberá posicio-

narse sobre “New” y en el submenú dar clic en la op-

ción “Web Service…”, lo cual hará que se abra un cua-

dro de diálogo con un Wizard para crearlo.

En el asistente deberá especificarse un nombre

para el servicio web, y atendiendo a recomendación de

internacionalización e interoperabilidad, para

este ejemplo se colocará el nombre “CURPGe-

nerator”; también se solicitará un nombre de

paquete para guardar el servicio web, para ello

se usará el nombre “CURPWebService” y el

cual será almacenado en la carpeta del mismo

proyecto.

Adicionalmente aparece la opción para

crear un servicio web intermediario, es decir,

que se conecte a otro servicio web, para ello se

debería elegir la opción “Create Web Service

from Existing Session Bean”; y también aparece

la casilla “Implement Web Service as Stateless

Session Bean” que servirá para hacer que sea un servicio web sin estado. Para este ejemplo básico no

se seleccionarán ninguna de estas opciones, por lo que simplemente deberá darse clic sobre [Finish].

Ello provocará que se genere el nuevo paquete y al proyecto se agregue un nuevo elemento llamado

“Web Services” que contendrá el servicio web que se acaba de crear.

El servicio web “CURPGenerator” recién creado incluirá el método “hello” para que sea invocado

por los clientes que lo soliciten, pero ya que es de prueba puede ser borrado sin mayor problema. Al

desarrollar un servicio web se tienen las vistas “Source” para ver y editar el código fuente, “Design”

para ver y modificar el servicio web desde asistentes para evitar escribir el código; y finalmente la

vista “History” para ver el historial de cambios hechos al código fuente.

Pantalla 8. Agregar un Web Service al proyecto

Pantalla 9. Creación de un nuevo servicio web

Pantalla 10. Opciones de visualización de un servicio web

Page 4: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 4 de 14

1.3. Configuración del servicio web creado

A continuación se ele-

girá la vista “Design” desde la

cual se procederá a eliminar el

método “hello” que se genera

como ejemplo y que no es de

utilidad, para ello habrá que

dar clic derecho sobre el recua-

dro que contiene a éste mé-

todo, y en el menú contextual

elegir la opción “Remove Ope-

ration”, solicitará la confirmación para proceder, o también se puede eliminar directamente desde el

código fuente.

Creación de nuevos métodos de negociación

Para crear el nuevo método de negociación que se encargará de generar la CURP se deberá

dar clic sobre el botón [Add Operation…] desde la vista “Design” (ver Pantalla 11), ello abrirá un

cuadro de diálogo.

Para obtener la Clave Única de Registro de

Población (CURP) se solicitarán los siguientes

campos: Nombre, Apellido Paterno, Apellido Ma-

terno, Fecha de nacimiento, Sexo y Entidad Federa-

tiva de nacimiento. Así pues, la operación se le lla-

mará “getCURP”, la cual retornara un string y de-

berá recibir los parámetros antes mencionados para

poder procesar la solicitud, si se quiere evitar alte-

rar los datos enviados por el cliente será necesario

activar el modificador “final”.

Con el fin de representar un ejemplo senci-

llo de seguir, este manual no realizará vali-

daciones complejas que deberían ser necesa-

rias antes de generar la CURP, tales como

verificar que un nombre no tenga caracteres

inválidos, o que no se formen palabras alti-

sonantes o curiosas como “COLA”. Así

mismo, como no hay manera de comprobar

que exista otra CURP idéntica, se asignará al

final siempre la homoclave “00”.

Pantalla 11. Eliminar el método de ejemplo hello del servicio web

Pantalla 12. Parámetros de la operación

Pantalla 13. Estructura de una CURP

Page 5: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 5 de 14

El código necesario y básico del método de negociación que devuelve la CURP es el siguiente:

Page 6: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 6 de 14

Pantalla 14. Código fuente básico de servicio web para generar CURP

1.4. Poner en marcha y probar el servicio web

Para poner en funcionamiento el servicio web es necesario pasarlo al servidor de aplicaciones Glass-

Fish, el cual se encargara de ejecutarlo. Sin embargo hasta este momento este servidor no se ha ini-

cializado, por lo que primero se procederá a iniciarlo.

Page 7: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 7 de 14

a) Iniciar servidor GlassFish

Para ello, es necesario posicionarse en la pestaña “Services”, y ex-

pandir el elemento “Servers”, donde deberá aparecer “GlassFish

Server 4.1” y al cual se le deberá dar clic derecho para posterior-

mente elegir la opción “Start”. Hecho esto, en el panel Output en

la pestaña correspondiente a GlassFish deberá empezar a verse el

proceso de inicialización y al final deberá mostrarse que se ha ini-

ciado.

b) Compilar el servicio web

Es necesario limpiar y compilar el proyecto previamente, de lo contrario probablemente no se des-

pliegue el método “getCURP” recién creado sino el método “hello” que venía de prueba. Así mismo,

cada vez que se realicen cambios en el código del servicio web, deberá repetirse este proceso.

Para ello es necesario que se elija la opción “Clean and Build Project” que está en la barra

de herramientas, o en el menú “Run”. Esto comenzará a realizar que se mostrará en panel de Output

dentro de la pestaña del servicio web y el cual deberá concluir con “BUILD SUCCESSFUL”.

c) Desplegar el proyecto en el servidor

Hasta este momento el proyecto se encuentra aún en la carpeta

donde creamos el proyecto, por lo que no es posible usar el servicio

web si antes no se coloca en el servidor GlassFish, y para ello será

necesario que se dé clic derecho sobre el proyecto y elegir la op-

ción “Deploy”, lo que hará que se compile nuevamente el proyecto

y se envíe a GlassFish. El Output deberá mostrar también un

“BUILD SUCCESSFUL”.

Pantalla 15. Iniciar GlassFish

Pantalla 16. Servidor GlassFish iniciado correctamente

Pantalla 18. Limpiar y compilar el proyecto

Pantalla 17. Compilación exitosa del proyecto

Pantalla 19. Desplegar proyecto en

el servidor

Page 8: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 8 de 14

d) Probar el wervicio web

Para realizar una prueba del funcionamiento del servicio web se

deberá dar clic derecho sobre el servicio web, en este caso llamado

“CURPGenerator” y elegir la opción “Test Web Service”, lo que

abrirá el navegador para llenar los campos y probarlo.

Pantalla 20. Probar el servicio web

Pantalla 22. Inserción de datos para probar el servicio web

Pantalla 21. Invocación del método getCURP que devuelve el resultado

Page 9: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 9 de 14

2. CREACIÓN DE CLIENTE QUE INVOQUE AL SERVICIO WEB

2.1. Creación de nuevo proyecto cliente

A continuación se creará un nuevo proyecto para simular un

cliente remoto desde el cual se invoque el servicio web. Para ello

es necesario crearlo de la misma forma en como se hizo en el

tema 1.1, cambiando únicamente los nombres. Para este ejemplo

se usará el nombre “presidencia.gob.mx”, tratando de simular

un sitio web que haga uso del servicio web antes creado.

Por defecto el proyecto creará una página web estática

con extensión html, la cual no servirá para invocar un servicio

web, sino que se debe usar una página activa de java con exten-

sión jsp, la cual permite generar de forma dinámica contenido.

Así pues, si se desea, el archivo html puede ser borrado dando clic derecho sobre él y seleccionando

“delete”.

2.2. Creación de página web jsp

Para crear una página activa de java, se puede dar clic

derecho sobre el proyecto, posicionarse sobre “New”

para después dar clic sobre “JSP…”. Esto abrirá un

cuadro de diálogo para especificar el nombre del

nuevo archivo, el cual se nombrará como “index” con

el fin de que sea la página de inicio. Se usaran las op-

ciones por defecto por lo que no se seleccionara otra

carpeta y será un “JSP File. Posteriormente se dará

clic en el botón [Finish] lo que provocara que se cree

el archivo nuevo en la misma ubicación del html.

Pantalla 23. Proyecto cliente creado

Pantalla 24. Crear una página JSP

Pantalla 25. Definiendo configuraciones de la nueva página JSP

Page 10: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 10 de 14

2.3. Enlazar el proyecto con un servicio web

Para hacer uso de un servicio web serán necesario enlazarlo,

para lo cual se debe dar clic derecho sobre el proyecto, posi-

cionarse sobre “New” y luego dar clic en “Web Service

Client…”, si esta opción no aparece deberá seleccionarse

“Other…” y buscarse manualmente.

En el nuevo cuadro de diálogo que se abre deberá

elegirse la opción de servicio web desde otro proyecto, por

lo que debe seleccionarse “Project” y posteriormente dar clic

sobre el botón [Browse…] para ubicar y seleccionar el ser-

vicio web deseado, es decir, “CURPGenerator”. Posterior-

mente debe indicar el nombre del paquete para guardar las

clases requeridas por el servicio web, para

este ejemplo se usará el nombre “Genera-

dorDeCURP”.

Una vez que se dé clic sobre el bo-

tón [Finish], comenzarán a crearse todos

los archivos con lo que en el Output deberá

mostrarse un “BUILD SUCCESSFUL” y

en el panel de proyectos agregarse los ele-

mentos “Generated Sources (jax-ws)” y

“Web Service References”, con los conte-

nidos que se muestran en la siguiente ima-

gen.

2.4. Creación de la estructura HTML de la página web

Para dar un poco de diseño a la página se usará el siguiente código, el cual es muy básico pero se

busca no saturar este manual con código, el código esencial es <form> por lo que si se desea, el resto

se puede omitir.

Pantalla 28. Cliente de servicio web creado correctamente

Pantalla 26. Crear un cliente de servicio web

Pantalla 27. Elección del servicio web a invocar

Page 11: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 11 de 14

Pantalla 29. Código HTML de la página web cliente

Page 12: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 12 de 14

Una vez se tenga el código HTML se podrá hacer clic sobre el

botón “Run Project” para visualizar la página en el navegador web.

“Run Project” se encuentra en la barra de herramientas o desde el menú

“Run”. Si se usó el mismo código de este ejemplo, el navegador debería

mostrar una página similar a la de la siguiente imagen.

Pantalla 31. Página JSP con solamente código HTML

2.5. Incrustar y probar el servicio web en la página JSP

Posterior a que se haya enlazado un servicio web (como se mostró en el tema 2.3), se puede incrustar

el método de negociación deseado en la página JSP. En este manual únicamente se creó una operación

(getCURP) por lo que será la que se usará.

Se ha reservado un espacio para incrustar el código Java que se encargará de realizar la ne-

gociación con el servidor, este espacio se encuentra a partir de la línea de código 28, como se puede

apreciar en la pantalla 29. El código empleado, de igual manera que como se ha explicado con ante-

rioridad, es un código básico en el que no se realizan validaciones para no extender demasiado el

código.

Para incrustar de forma rápida el método de negociación se puede ubicar el método

“getCURP” del panel de proyectos (ver Pantalla 28) y arrastrarlo a la línea de código donde se desee

incrustar. También se puede dar clic derecho sobre la línea de código deseada y en el menú contextual

posicionarse sobre “Web Service Client Resources” y luego dar clic en “Call Web Service Opera-

tion…”, lo cual abriría un cuadro de diálogo desde el cual se tendría que seleccionar “getCURP”.

Pantalla 32. Código para invocar el servicio web pasándole como parámetros los datos del formulario HTML

Pantalla 30. Correr proyecto

Page 13: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 13 de 14

Para probar el funcionamiento correcto del servicio web se debe correr el proyecto (ver Pantalla 30).

Pantalla 33. Llenado de formulario previo a usar el servicio web

Pantalla 34. Respuesta del servicio web con el CURP generado

2.6. Agregar diseño a la página

Si se desea agregar un poco de diseño a la página, se deberá agregar en la línea de código 14 reservada

para tal fin el código mostrado a continuación.

Pantalla 35. Código CSS de la página

Page 14: Manual de creación y uso de Web Service SOAP

Por: Héctor Garduño Real

Máster en Dirección e Ingeniería de Sitios Web Servicios Web y Arquitecturas REST

31 de enero de 2015 Página 14 de 14

Pantalla 36. Visualización de página con estilos CSS aplicados