sábado, 8 de diciembre de 2012

Generar un cliente con Axis2



Generar un cliente

  • Descargamos los binarios del axis2, y los registramos como variables de entorno
    AXIS2_HOME : c:\axis2\
  • En el path ";%AXIS2_HOME%\bin"
  • Luego creamos un directorio donde se generaran las clases java, que seran utilizadas
    para realizar el consumo del servicio web, ejecutamos el siguiente comando
    c:\axis2\carpeta\wsdl2java -p com.servicio.ws.sample1.cliente -d adb -S . -or -uri http://127.0.0.1:8080/axis2/services/Calculadora?wsdl
  • El parámetro p indica el nombre del paquete donde deseamos que se generen las clases.
  • El parámetro d indica el tipo de Databinding, es decir, el mapeo entre XML y objetos Java que deseamos.
    Usamos el tipo ADB (Axis Data Binding) que usa AXIOM (Axis Object Model) un modelo especialmente creado
    para Axis que proporciona un alto rendimiento debido a que está basado en el API de StAX (Streaming API for XML) (Alternativas a DOM y SAX)
    una forma de parsear XML bajo demanda, es decir, sólo se parsea lo que se necesita en cada momento.
  • El parámetro S indica el nombre de la carpeta en donde deseamos que se generen las clases (por defecto crea una carpeta src)
  • El parámetro uri indica el WSDL de partida.

Invocar el servicio Web

  1. package com.autentia.ws.sample1.test;   
  2.   
  3. import com.autentia.ws.sample1.cliente.*;   




  • import com.autentia.ws.sample1.cliente.CalculadoraStub.Sumar;   
  • import com.autentia.ws.sample1.cliente.CalculadoraStub.SumarResponse;   
  •   
  • /**  
  •  * Ejemplo de invocación SINCRONA del servicio Web  
  •  *   
  •  * @see Creador de http://www.mobiletest.es       
  •  */  
  • public class Appication1 {   
  •     /**  
  •      * Ejemplo de invocación del servicio  
  •      */  
  •     public static void main(String[] args) throws Exception {   
  •         CalculadoraStub stub = new CalculadoraStub();   
  •         Sumar operacion = new Sumar();   
  •         SumarResponse response = null;   
  •   
  •         // Establecemos los parámetros de la operación   
  •         operacion.setParam0(100);   
  •         operacion.setParam1(200);   
  •   
  •         // Invocamos el WS   
  •         response = stub.sumar(operacion);   
  •   
  •         // Mostramos el resultado   
  •         System.out.println(response.get_return());   
  •     }   
  • }   
  •       

  • Conclusiones

    Bueno, como pueden ver la generación de servicios Web con Axis2 así como su despliegue o generación de clientes no tiene mucha dificultad. Axis2 soporta los patrones de mensajería (Síncrona/Asíncrona, Comunicación 1 a 1, 1 a N, N a M, mensajería por eventos, etc.) definidos WSDL 2, así como varios tipos de DataBinding que se salen del alcance de este tutorial.

    Saludos
    Renzo Huertas


    No hay comentarios:

    Publicar un comentario