lunes, 1 de junio de 2009

MANEJO DE 'WEB SERVICE' CON 'AXIS1'.

Ultimamente en mi nuevo trabajo me solicitaron la integracion de dos sistemas que trabajaban por separado y analizando decidi aplicar 'Web Service'(WS), asi que buscando decidi aplicar este muy buen Framework para manejo en JAVA de Web Service 'AXIS1'. El ejemplo presentado acontinuaciòn consiste en dos proyectos JAVA:

1.- Ejemplo_ServidorWS_AXIS1:
- Posee clases de conexion a MySql.
- Posee un Patròn DAO y las Interfaces respectivas.
- Posee Servicios de acceso.
- Aqui se genarara el 'WSDL'(Que es un XML mapeado con los paràmetros que accederàn de un sistema al otro), mediante la herramienta que brinda Eclipse.

2.- Ejemplo_ClienteWS_AXIS1:
- Posee dos ejemplos de Cliente 'Web Service', el primero generado mediante la herramienta del Eclipse para generar un 'Cliente WS' en base al 'WSDL' ya creado, y el segundo cliente es en base varias clases que brinda 'AXIS' para el acceso automàtico en base a solo el nombre de la ruta del 'WSDL' en String.

Datos Importante (Sobre el Ejemplo a Descargar):
- El ejemplo del manejo de Web Service esta preparado para correr con platformas JAVA v1.5 y v1.6 (Aqui se debe quitar de a carpeta 'lib': jsp-api.jar y servlet.jar ya que vienen dentro del 'JDK-1.6' sino crea conflicto y no levantar la aplicaciòn), trabaja con una conexion a MySql (El Stript se encuentra dentro del Aplicativo Servidor) y fue desarrollado en Eclipse v3.3.

- Para levantar el 'Web Service', se tiene que tener ya un proyecto Java listo con las conexion a MySql, que trabajara como 'Servidor' y en base a la Implementacion de una Interface 'DAO' o la de un 'Servicio' se generara el 'WSDL', donde se mapearan los datos de entrada y salida para la interconexion de los sistemas. (Al correr la aplicaciòn con el Tomcat, se levanta junto con la aplicacion el servicio 'WSDL'). Ver imagenes:

Se muestra el arbol de la aplicaciòn que servirà de Servidor para el 'WS'.

Comenzamos a generar el 'WS' con la herramienta de Eclipse.

Seguir pasos que se muestran en la imagen.

Chequear los mètodos que serviràn para la generaciòn del 'WS'
(Seran mapeados en el XML).

Iniciar el Servidor y pulsar finalizar.

Se levantarà la aplicaciòn y se mostrarà una pàgina 'JSP'.

Del 'WDSL' generado obtendremos la ruta del del 'WSDL' para probar si el servicio esta iniciado.

A la vez que se levanta el servidor se inicia el Servicio del 'WS'. Observemos el 'WSDL' generado agregando al link el '?wsdl'.

Luego de esto, para generar el cliente con la herramienta que facilita el Eclipse
copiamos la carpeta 'WSDL' con todo su contenido del Proyecto Java que sirve de 'Servidor' al proyecto que servirà de 'Cliente' y del 'UsuarioDaoImpl.wsdl' generar las clases base.


Dar los cheks respectivos que se muestran en la imagen.

Se muestra la ubicaciòn donde se generà las clases de apoyo al 'WS' (org.java.dao) en la aplicacion 'Cliente'.

Se muestran las clases generadas en el proyecto Cliente 'WS'.

Luego de estos pasos, ya podemos trabajar con el cliente 'WS'. Mostrarè dos formas de realizar un cliente 'WS' para realizar un mantenimiento via 'WS', los procesos seràn los siguientes y se ejecutaràn en base al orden que sean descomentados:

/********** PROCESOS 'WS' **********/
clienteWS.registrarUsuario( accesoWS );
//clienteWS.modificarUsuario( accesoWS );
//clienteWS.eliminarUsuario( accesoWS );
//clienteWS.obtenerObjetoUsuario( accesoWS );
//clienteWS.obtenerListaObjetosUsuario( accesoWS );
/**************************************/

1.- Cliente 'WS' en base a las clases generadas:'src.org.java.client.ClienteWS_Generado.java', utiliza las clases generadas por Eclipse para conectarse al 'WSDL'.

2.- Cliente 'WS' de acceso automàtico sin utilizar ninguna clase generada:'src.org.java.client.ClienteWS.java', no necesita ninguna clase sino que utiliza las Clases que brinda AXIS para el acceso automàtico, necesitando simplemente la ruta del 'WSDL' en String.

Para mayor detalle descargar el ejemplo completo: AQUI.

1 comentario:

Mario dijo...

Me gustaria saber donde se dictan cursos de programacion web, si alguien sabe por favor digame donde inscribirme que voy corriendo en la kangoo a anotarme