viernes, 14 de octubre de 2011

Consumir un servicio web desde un cliente creado con AXIS2

 

Con anterioridad publique como Generar un WSDL desde un archivo.javaInstalar y configurar Apache Tomcat & Axis 1.x; Pero debemos obtener beneficios de un servicio web para esto necesitamos crear un cliente para consumir un WS publico.

Requisitos para crear el cliente

1) Tener un servicio web disponible el cual se va a consumir. Descarga el archivo.wsdl del servicio web a nuestra computadora.En este repositorio hay algunos http://www.service-repository.com/ y nos da la disponibilidad de dichos servicios.

2) Distribución binaria de Axis2. Descarga desde la pagina oficial.

3) IDE Eclipse.

Crear la variable de entorno AXIS2_HOME

La distribución binaria axis2 descargada previamente se descomprime y colocarla en el directorio raíz, renombrarla como AXIS2_HOME.

image

Lo siguiente es crear la nueva variable en el sistema, para ello Ir a Propiedades del sistema > Variables de entorno y crear una nueva variable del sistema con el siguiente nombre:

Nombre de la variable: AXIS2_HOME

Valor de la variable: C:\AXIS2_HOME

image

Modificar la variable del sistema Path agregando la ruta: C:\AXIS2_HOME\bin

image

Como saber si se creo correctamente la variable de entorno AXIS2_HOME ?

antes de seguir vamos a asegurarnos de que se han realizado correctamente los pasos anteriores.

Abrir un Símbolo del sistema en Windows y teclear la siguiente linea:

wsdl2java y se debe desplegar información sobre la instrucción anterior.image

¿ Es correcta la configuración ? sino revise los pasos anteriores.

Crear cliente por medio del IDE Eclipse

Omitiré muchas explicaciones sobre Eclipse, espero no tengan problemas. Este paso es uno de los mas laboriosos y enredados.

Abrir Eclipse Ir a la pestaña File > New > Java Project le damos un nombre al proyecto y clic en el botón FInish.

Dentro de ese proyecto colocaremos el archivo.wsdl del servicio que deseamos consumir.

Como se hace?

  • Solo deben copiar el archivo.wsdl ,
  • Ir a Eclipse, Seleccionar el Java project que acaban de crear
  • Dar clic derecho y elegir la opción  pegar.

Debe quedar algo similar:

image

Dejamos de momento Eclipse y abrimos nuevamente un símbolo del sistema para realizamos lo siguiente:

  1. Ir al directorio del workspace y buscar el proyecto que creamos en eclipse, en mi caso es: C:\Users\Alberto\workspace\consumir_WS> justo ahí se puede ver la estructura del proyecto java y el wsdl. image
  2. Generaremos el Stub para el cliente, estas son dos clases.java que se obtiene con la siguiente instrucción:

 wsdl2java –uri TopMovies.wsdl image

Por ultimo regresamos a Eclipse seleccionamos el proyecto y damos refresh mediante la tecla F5, debe aparecer un nuevo paquete que contiene las clases creadas en el paso 2.image

Sorpresa!!! están las clases pero marca un error, es porque se requiere agregar los archivos.jar. Para agregarlos:

  • Dar clic derecho en el proyecto
  • Ir a la opción Build Path > Add External Archives… 
  • En la ventana siguiente ir a la ruta C:\AXIS2_HOME\lib
  • Seleccionar todos los archivos.jar para agregarlos al proyecto.

image

 

Como se puede ver se agregaron los archivos de la librería de axis2. Y los errores, han desaparecido!!!

 

 

 

 

 

 

 

 

 

Clase Test.java

Por ultimo se debe crear una clase Test.java dentro del proyecto para probar que se puede consumir el servicio web. Aquí les dejo el código de la clase Test.java.

image

Es fácil de analizar la clase Test, se crea un objeto TopMoviesStub y se utiliza los métodos GetTop10 y GetTop10Response del WS. Para comprender que parámetros recibe y que devuelve cada uno de los métodos es recomendable analizar el wsdl del servicio web. El que estoy consumiendo para este ejemplo esta en: http://www.service-repository.com/service/overview/-1851638808

Ejecutar Test.java y se muestra el resultado de consumir el servicio web

image

¿ Alguna duda ? …

2 comentarios: