Ejercicios de Introducción a los Servicios Web

1. La página http://www.xmethods.net contiene una serie de Servicios Web de demostración. En la sección XMethods Demo Services, en la parte inferior de la página, tenemos una lista de servicios que podremos integrar en nuestras aplicaciones.

a) Pulsar sobre el servicio Currency Exchange Rate para obtener información sobre él. Esto nos llevará a una página con documentación sobre este servicio, además de un enlace al documento WSDL que lo describe.

b) Si queremos convertir la divisa europea (euro) a la de EEUU (dólar), ¿qué operación y qué parámetros debemos proporcionar?

c) Vamos a invocar el servicio mediante la aplicación Web Services Explorer (WSE) que podrás encontrar en la sección de recursos. Deberemos proporcionar la dirección del documento WSDL que describe el servicio y nos mostrará las operaciones que nos ofrece, pudiendo invocarlas desde la misma aplicación.

Para instalar WSE debemos:

ant compile
ant run

Una vez hemos ejecutado la aplicación, para invocar la operación de cambio de moneda haremos lo siguiente:

d) Consultar los mensajes SOAP de petición y respuesta utilizados. ¿Qué datos encontramos en cada uno de ellos?

2. Búsqueda de Servicios Web. En este ejercicio vamos a acceder a un registro UDDI para buscar un servicio.

Amazon ofrece Servicios Web para obtener información sobre los productos que venden. Vamos a buscar estos servicios en un registro UDDI, para posteriormente poder integrarlo en nuestras aplicaciones.

a) Acceder a un registro UDDI mediante su interfaz web y buscar el archivo WSDL que describa los servicios de Amazon.com.

b) Abrir el documento WSDL del servicio que ofrece Amazon.

c) En el directorio AmazonCliente, tenemos un cliente que utiliza dicho servicio para hacer una búsqueda de DVDs teniendo como criterio de búsqueda el nombre del director.

ant compile
ant run -Ddirector=nombre_director

Por ejemplo, podríamos buscar las películas en DVD de David Lynch, o de Stanley Kubrick:

ant run -Ddirector=lynch
ant run -Ddirector=kubrick

Con esto veremos los títulos de las películas encontradas en Amazon.

ant run-debug -Ddirector=lynch > log

Ejercicios de Creación de Servicios Web

1. Vamos a ver como ejemplo la creación de un servicio HolaMundo. En el directorio HolaMundoSW tenemos ya implementado este servicio como ejemplo.

a) Para crear este servicio deberíamos seguir los siguientes pasos:

b) Acceder al documento WSDL del servicio desplegado mediante un navegador web. Si el servicio ha sido desplegado correctamente, podremos obtener información sobre el mismo accediendo a la siguiente dirección:

http://localhost:8080/HolaMundo/hola

En esta página podemos encontrar un enlace al documento WSDL que describe el servicio, al que también podemos acceder directamente a través de la siguiente URL:

http://localhost:8080/HolaMundo/hola?WSDL

Consulta el documento WSDL del servicio e identifica los elementos que ves en él.

c) Utilizar la herramienta WSE (Web Service Explorer) para invocar el servicio web desplegado, y comprobar que su funcionamiento es correcto.

2. Vamos a implementar un Servicio Web sencillo que realice la conversión de euros a ptas y de ptas a euros. Para ello proporcionaremos dos operaciones:

double ptas2euro(int ptas)
int euro2ptas(double euros)

El nombre del servicio en este caso será Conversion.

a) Implementar el servicio. Como ayuda puedes seguir los pasos del ejercicio anterior, cambiando los datos que sean necesarios. En este caso tendremos que implementar nosotros las clases con la interfaz y la implementación del servicio, además del descriptor de despliegue y el fichero de configuración de JAX-RPC.

Vamos a desplegar el servicio en el contexto Conversion, y la ruta para acceder a él será /conv. Una vez hayamos finalizado, deberemos poder ser capaces de acceder al servicio en la dirección:

http://localhost:8080/Conversion/conv

b) Acceder al documento WSDL del servicio desplegado mediante un navegador web. Identifica los elementos que ves en él.

c) Utilizar la herramienta WSE (Web Service Explorer) para invocar el servicio web desplegado, y comprobar que su funcionamiento es correcto.

3. (OPTATIVO) Vamos a implementar un foro mediante servicios web. El foro deberá ofrecer dos operaciones:

public void publicarMensaje(String nick, String mensaje);
public Mensaje [] listaMensajes();

a) Implementar el servicio. Deberemos crear una clase Mensaje en la que se guardará el texto del mensaje y el nick de quien lo envió. AYUDA: Para guardar la lista de mensajes se puede utilizar una clase estática.

b) Acceder al documento WSDL del servicio desplegado mediante un navegador web. Identifica los elementos que ves en él.

c) Utilizar la herramienta WSE (Web Service Explorer) para invocar el servicio web desplegado, y comprobar que su funcionamiento es correcto.