viernes, marzo 28, 2014

Consumir Web Service con apache cxf 2.7.10


Esta ocasion coloco un ejemplo que utilizo para consuimir el servicio web que esta en el ejemplo
Ejemplo Web Service Metro JAX-WS RI 2.2.8 ,  es decir pongo el cliente del servicio web, ayudandome de las herramientas de Apache CXF es muy facil pues solo necesitamos el wsdl y con la herramienta wsdl2java obtendremos el codigo java para consumir el servicio


Bien una vez que descargamos el apache cxf desde http://cxf.apache.org/download.html  nosotros tenemos que descomprimir el proyecto y ubicarlo donde mas nos convenga obteniendo una carpeta con nombre como esta
 Tendremos que  navegar hasta ubicarnos dentro de la carpeta bin(Esta de be ser desde la consola del sistema)


 Ya ubicados en la carpeta bin es necesario que tengamos a la mano el wsdl, en mi caso yo utilizo el proyeco de forma local.Lo despliego en un tomcat y obtengo mi url del wsdl.
 Copiamos y nos dirijimos ala consola donde estabamos ubicados en bin para dal el siguiente comando(ojo yo utilice la consola de Mac OS en Windows no es necesario poner el ./)

./wsdl2java -client http://15.156.24.35:8036/WSOperaciones/ServidorPort?wsdl

Esperamos uno segundos y nos dirijimos a la carpeta de Apache, dentro de bin notaremos que se creo una carpera llamada com, es aqui donde esta el codigo generado por Apache CXF





Bien ahora a probar , Yo lo hice en un proyecto Java de Eclipse

 En el proyecto copio la carpeta com y la pego en src del proyecto que genere y quedaria mas o menos asi:
 modificamos un poco el main de Servidor_ServidorPort_Client.java para ver resultados mas reales.
        int _operaciones_arg0 = 10;
        int _operaciones_arg1 = 5;

 
Listo ahora el Run As al Servidor_ServidorPort_Client.java





Y la consola nos arroja algo asi

Invoking operaciones...
operaciones.result=[com.operaciones.basicas.Respuesta@71bfc4fc, com.operaciones.basicas.Respuesta@651db6bb, com.operaciones.basicas.Respuesta@1c7e2da, com.operaciones.basicas.Respuesta@69fe571f]


Si queremos ver realmente el resultado de consumir el servicio agregamos esto debajo de System.out.println("operaciones.result=" + _operaciones__return);


 //Recorremos la List
        for(Object obj :_operaciones__return){
            System.out.println(""+((Respuesta)obj).getTipo()+"  "+((Respuesta)obj).getRespuesta());
        }
        


Modificamos el main de Servidor_ServidorPort_Client

 //Recorremos la List
        for(Object obj :_operaciones__return){
            System.out.println(""+((Respuesta)obj).getTipo()+"  "+((Respuesta)obj).getRespuesta());
        }


Y nuevamente Run As al Servidor_ServidorPort_Client.java y el resultado sera

Invoking operaciones...
operaciones.result=[com.operaciones.basicas.Respuesta@1d96f4b5, com.operaciones.basicas.Respuesta@219ba640, com.operaciones.basicas.Respuesta@71bfc4fc, com.operaciones.basicas.Respuesta@651db6bb]
Respuesta Suma  15
Respuesta resta  5
Respuesta division  2.0
Respuesta multiplicacion  50


Hasta aqui todo, espero sea de utilidad para alguien, Espero un comentario Saludos

DESCARGA EL CODIGO Y DEJA UN COMENTARIO


Referencias:
http://cxf.apache.org/download.html
https://cxf.apache.org/docs/wsdl-to-java.html
http://elkardumen.blogspot.com/2013/08/ejemplo-web-service-metro-jax-ws-ri-228.html#more

1 comentario:

  1. Gracias, me ayudo bastante.

    Estaría bueno agregar la parte de la autenticación para completar el artículo.

    Saludos

    ResponderEliminar