El siguiente programa (Cliente) esta diseñado para realizar solicitudes de "Estado del Tiempo" vía XMLRPC hacia un servidor que opera en el puerto TCP 12000
de la maquina local (localhost), después se obeservará como este mismo Cliente puede realizar solicitudes a otros Servidores que no están escritos en Java.
En base a su ambiente puede generar el siguiente Cliente XMLRPC Asegúrese que un Servidor este corriendo bajo dicho puerto |
package com.osmosislatina.xml.xmlrpc; import java.io.IOException; import java.util.Vector; import org.apache.xmlrpc.XmlRpc; import org.apache.xmlrpc.XmlRpcClient; import org.apache.xmlrpc.XmlRpcException; public class ClienteClima { public static void main(String args[]) { if (args.length < 1 ) { System.out.println("Utilización: java ClienteClima <país>"); System.exit(-1); } try { // Generar el Cliente XmlRpcClient client = new XmlRpcClient("http://localhost:12000/RPC2"); // Crear un Vector para pasar parametros a las funciones // en este caso no es necesario , pero las librerías XMLRPC // lo requieren Vector params = new Vector(); params.addElement(new String(args[0])); // Enviar Solicitud Object clima1 = client.execute("clima.mundial", params); System.out.println("El clima en " + clima1.toString()); } catch (IOException e) { System.out.println("Error de I/O : " + e.getMessage()); } catch (XmlRpcException e) { System.out.println("Error en XML-RPC: " + e.getMessage()); } } } |
El primer paso de este Cliente es declarar las clases que serán utilizadas en el programa.
Dentro del método principal se revisa si ha sido proporcionado el nombre del País donde se desea investigar el clima.
Posteriormente se genera una instancia del Cliente XMLRPC indicando los parámetros del Servidor a conectarse http://localhost:12000/RPC2
.
Se genera un Vector con la información que será enviada al Servidor.
Es invocado el procedimiento clima.mundial
en el Servidor correspondiente pasando como parámetro el Vector creado anteriormente.
Se imprime a pantalla el resultado obtenido del Servidor.
Continúan las declaraciones de los posibles errores del programa.
template
, XPath, Condicionales y Ciclos en XSL.