"Cogito ergo sum"
RSS icon Email icon Home icon
  • Cliente e Servidor, Java XML-RPC

    Posted on May 16th, 2009 Matheus (X-warrior) Bratfisch 3 comments

    Boa noite,

    Como havia comentado a algum tempo atrás, estava trabalhando com um cliente XML-RPC em Java, durante a fase de desenvolvimento do mesmo tive que criar um servidor XML-RPC hipotetico para testar as funcionalidades do cliente, enquanto o servidor certo ainda não estava disponivel para minha pessoa.

    Resumidamente para você que não conhece XML-RPC ele é um “formato” , um “jeito”, não sei ao certo a palavra certa para definir agora, onde você cria um servidor e o mesmo quando requisitado faz as operações necessarias e retorna um resultado. Um exemplo seria, você tem um código de criptografia que funciona MUITO bem em C, mas seu sistema é todo em Java, você poderia criar um Cliente JAVA e um Servidor C onde o Java faria requisição para Criptografar as coisas. Talvez utilizar XML-RPC de Java para Java possa ser meio estranho, mas quando os serviços estão distantes, pode ser algo util.

    Para começar a mecher com o XML-RPC no Java eu utilizei o apache xml-rpc. Após isso apenas desenvolvi.

    Baixe os exemplos cliente e servidor xml-rpc em java.

    Servidor:

    package xmlrpc;

    import org.apache.xmlrpc.server.PropertyHandlerMapping;
    import org.apache.xmlrpc.server.XmlRpcServer;
    import org.apache.xmlrpc.webserver.WebServer;

    public class ServidorXMLRPCParaTestes {

    private static ServidorXMLRPCParaTestes euMesmo = null;

    private ServidorXMLRPCParaTestes() {
    try {
    WebServer server = new WebServer(8185); // Cria um servidor na porta 8185
    XmlRpcServer servidor = server.getXmlRpcServer(); // Pega o servidor XmlRpc
    PropertyHandlerMapping phm = new PropertyHandlerMapping();
    phm.addHandler(”Calc”, Calculadora.class); // Adiciona um novo “handler” ao PHM
    servidor.setHandlerMapping(phm); // Define o handler no servidor
    server.start(); // inicia o servidor.
    } catch (Exception exception) {
    System.err.println(”JavaServer: ” + exception);
    }
    }

    public static ServidorXMLRPCParaTestes obterInstância() {
    if (euMesmo == null)
    euMesmo = new ServidorXMLRPCParaTestes();
    return euMesmo;
    }
    }

    - Eu utilizeo o obterInstancia para não poder existir mais de um ServidorXMLRPC ;)
    - O handler faz o seguinte, quando for chamado Calc.METODO no servidor ele irá buscar dentro do Calculadora.class

    Read the rest of this entry »