martes, 15 de enero de 2008

Web Service CXRex, aplicación Java

Hola a todos, ya hace algun tiempo que escribi mi ultimo post y había dejado en el olvido mi blog, pero esta vez regreso de nuevo y con una noticia que me sorprendio pues un grupo de amigos que desde hace algun tiempo mantienen un sitio de envio ilimitados de mensajes y lo mejor de manera gratuita, el pasado fin de semana liberaron un web service basado en su API de envio de mensajes SMS, que bien no???, pues como les decia soy un desarrollador java y hace unos minutos realice mi primera prueba exitosa de envio de SMS y aca les dejo el codigo.

Primero que nada generamos la referencia al web service.
Nota: para el desarrollo de la aplicación utilizo el entorno de desarrollo Netbeans 5.1, jdk 1.6.

url ws: http://www.cxrex.com/service/CXRexService.asmx

Si el web service se cargo sin problema alguno, nos dirigimos a nuestra clase principal e importamos las siguientes clases y libreria.

import cx.web.service.*;

import java.util.Iterator;

import java.util.List;

En nuestra área principal de trabajo y como inicio de código cargamos la lista de provedores.

// Acceso a los proveedores de servicio

// Movistar

// Iusacell

// Unefon

// Nextel

CXRexService servicio_cxrex = new CXRexService();

ArrayOfCXServiceProviderInfo contenedor_proveedor_servicio = servicio_cxrex.getCXRexServiceSoap().getListServiceProvider();

List lista_proveedor_servicio = contenedor_proveedor_servicio.getCXServiceProviderInfo();

Iterator iterador_lista_proveedor_servicio = lista_proveedor_servicio.iterator();


while(iterador_lista_proveedor_servicio.hasNext()){

CXServiceProviderInfo proveedor_servicio = (CXServiceProviderInfo) iterador_lista_proveedor_servicio.next();

System.out.print(proveedor_servicio.getName() + "\n");

}


Como podran darse cuenta el código es muy sencillo e intuitivo.

Lo úniko que tenemos que hacer es iniciar el servicio (CXRexService), cargar a un objeto de tipo lista que va a contener los proveedores de servicio (List).

Paso seguido y final es prepara el contedor del mensaje y generar el envío del mismo.

// Preparando el envio de mensajes
CXMessage mensaje = new CXMessage();
mensaje.setReceptor("123456789");
mensaje.setMessage("xxxxxxxxxx");

// Generamos el envio del mensaje
CXMessageState estado_mensaje = servicio_cxrex.getCXRexServiceSoap().sendMessage(mensaje, (CXServiceProviderInfo)lista_proveedor_servicio.get(1));

// Se imprime el resultado de exito o fracaso a la hora de enviar el mensaje
System.out.println(estado_mensaje.value());

Como podemos observar se genera un nueva instancia de la Clase que va a contener las caracteristicas del envio de nuestro mensaje y apartir de ella cargar el rpoveedor seleccionado de la lista de proveedores y cargar el mensaje para poder generar el envío SMS y finalmente esperar la respuesta.

Si la respuesta obtenida es: SendOk el mensaje ha sido enviado con exito.

Para mayor información y otro ejemplos del uso del Web Service CXRex visitar:

cx-rom
cx-rom web pages

blog cxrex


Para el envío de mensaje gratis e ilimitados visitar: cxrex

5 comentarios:

Anónimo dijo...

Oye tengo una duda con java
estoy haciendo el proyecto con netbeans 6 pero al compilar me marca un error en esta linea de codigo

ArrayOfCXServiceProviderInfo lista_proveedor = new CXRexService().getCXRexServiceSoap().getListServiceProvider();

y sale esto

Exception in thread "main" javax.xml.ws.WebServiceException: Provider com.sun.xml.ws.spi.ProviderImpl not found


podrás ayudarme ya se cargo el webservice y todo jalo bien... solo es la asignacion de proveedor que sale mal

Rulo dijo...

Hola, creo que en este caso me falto comentar algo acerca del web service, y más aun cuando lo cargas en un entorno Java Netbeans. El punto es el siguiente; cuando cargas el Web Service este genera una jerarquia de clases dentro del paquete que especificas previamente, dentro de mi jerarquia de clase genero una Clase de tipo Array para especificar la lista de proveedores, en este caso fue ArrayOfServiceProviderInfo, aunque el tipo de lista pudo haber sido CXServiceProviderInfo[].
Te recomiendo revisar el paquete de Clases que genero el Web Service y ademas revisar el tipo de objetos que te devuelve el metodo "getListServiceProvider()".

Minetaky dijo...

Hola Rulo!
Fijate que trate de hacer uso del webservice de CXRex con C# y no se carga el webservice, tambien lo intente con JAVA (guiandome de tu publicacion) y tampoco se carga, ya deje el comentario en el blog de CXRex pero no me contestan, ojalá y tu puedas ayudarme, no se si ya no se puede usar el wevservice o si yo lo hago mal, muchas gracias y te agradecere muchísimo si pudieras ayudarme.

Minetaky.

Rulo dijo...

Por el momento el sitio de CXREX esta cambiando su imagen y el servicio de web service esta deshabilitado ese es el problema que tiene ahoritA, PERO SI QUIERES PUESDE VISITAR LA PAGINA DE CXREX PARA MAYOR INFORMACI'ON GRACIAS.

Minetaky dijo...

Hola!
Gracias por contestarme, estare al pendiente para ver cuando ya este listo el servicio, por otro lado también he estado pendiente de la página de CXRex y no he visto nada al respecto, por eso mejor pregunte, muchas gracias, te agradesco mucho. Saludos!.
Minetaky