manual de creación y uso de web service soap
TRANSCRIPT
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
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
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
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
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:
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.
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
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
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
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
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
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
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
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