Consumir Servicios Web SOAP
CI-2454 Servicios Web
Prof. Braulio Jos Solano Rojas
ECCI, UCR
Tener un buen IDE es ideal
La forma ms productiva de consumir un
Servicio Web SOAP es por medio de un
Entorno Integrado de Desarrollo (IDE) que nos
genere clases proxy o cdigo fuente.
Esto hace el trabajo ms sencillo al
programador. Evita el manejo manual del flujo
XML y permite abstraer el servicio como una
biblioteca o clase local de forma transparente.
2 de 25
.NET
Consumicin en .NET
En Microsoft Visual Studio, primero se debe crear
una solucin o proyecto de la naturaleza que se
requiera. Es decir, puede ser una aplicacin de
ventanas, una aplicacin web u otra.
Luego en el momento que se requiera agregamos
al solucin o proyecto una referencia de servicio,
tal como se muestra en la filmina siguiente. En
versiones anteriores de .NET y antes de WCF (con
ASMX) no se agrega una referencia a un servicio
si no ms bien una referencia web.
4 de 25
Consumicin en .NET
5 de 25
Consumicin en .NET
Luego simplemente agregamos en el dilogo
que se nos muestra la referencia web al WSDL.
La referencia nos debera mostrar los mtodos
disponibles en el servicio.
Adems, debemos escoger un espacio de
nombres adecuado para la clase con los
mtodos que va a generar el IDE.
6 de 25
Consumicin en .NET
7 de 25
Consumicin en .NET
Una vez agregado el servicio Visual Studio
genera cdigo proxy que permite utilizar los
mtodos en el servicio de forma transparente.
El ejemplo de cdigo en la filmina siguiente
muestra la utilizacin del servicio como un
objeto local. Se abstrae lo remoto.
8 de 25
Consumicin en .NET
9 de 25
Consumicin con sesin en .NET
Si es necesario sostener estado en el servidor
existen varias posibilidades. Una de ellas es
cookies. Siempre que el servidor utilice HTTP
el cliente puede utilizar cookies para mantener
dicha sesin. En ASMX (la forma de consumir
un WSDL y su servicio asociado antes de
WCF) dicho manejo se haca a travs de un
objeto CookieContainer. En WCF dicho manejo
se hace a travs de configuracin. Se modifica
el archivo App.config de la solucin o proyecto.
10 de 25
Consumicin con sesin en .NET
Modificacin en App.config:
Se agrega allowCookies="True" en el binding.
11 de 25
Consumicin con Mono en Linux
Mono es una alternativa de software libre que
implementa el estndar de industria de .NET.
MonoDevelop es un IDE para trabajar con
dicha plataforma. Es posible consumir un
Servicio Web con ese IDE de forma sencilla.
Basta con Agregar referencia web a la
solucin o proyecto. Claramente utiliza la
forma primera (ASMX) que utilizaba Visual
Studio.
12 de 25
Java
Consumicin en Java con Netbeans
En primer lugar es necesario en Netbeans
crear un proyecto Java que puede ser tan
simple como una Java Application, ms
elaborado como u otro que se requiera.
Luego a dicha aplicacin cliente le agregamos
un nuevo cliente de Servicio Web haciendo clic
derecho en el proyecto, tal como se muestra en
la filmina siguiente.
14 de 25
Consumicin en Java con Netbeans
15 de 25
Consumicin en Java con Netbeans
Netbeans muestra un dilogo para la creacin
de cdigo cliente del servicio.
Debemos indicar un WSDL y el nombre del
paquete para el cdigo a generar.
16 de 25
Consumicin en Java con Netbeans
17 de 25
Consumicin en Java con Netbeans
Para invocar al servicio podemos utilizar el
cdigo generado de forma transparente como
si se tratase de una clase local.
Podemos crear una variable privada en
cualquiera de nuestras clases que sea una
instancia del servicio.
Luego en los mtodos de la instancia podemos
hacer uso del servicio.
18 de 25
Consumicin en Java con Netbeans
19 de 25
Consumicin en Java con sesin
Al igual que con .NET, en Java, si es necesario
sostener estado en el servidor existen varias
posibilidades.
Una de ellas es cookies.
Siempre que el servidor utilice HTTP el cliente
puede utilizar cookies para mantener dicha
sesin.
En Java cambiamos la configuracin del
binding por medio de cdigo tal como se
muestra en la filmina siguiente.
20 de 25
Consumicin en Java con sesin
21 de 25
PHP
Consumicin en PHP
PHP posee desde la versin cinco clases para
la utilizacin de Servicios Web. Estas clases
son
limitadas
por
lo
que
algunos
programadores las extienden por herencia o
bien utilizan marcos de desarrollo que las
extienden para ofrecer mayor funcionalidad.
La clase para consumir Servicios Web en PHP
es SoapClient. La siguiente filmina muestra un
ejemplo de consumicin con PHP.
23 de 25
Consumicin en PHP
24 de 25
Gracias por su atencin!
Preguntas?