Az XML-RPC egy egyszerű régi protokoll, amely lehetővé teszi eltérő rendszerek közötti adatkommunikációt és a távoli eljáráshívást. Az XML-RPC használatával a fejlesztők úgy tudnak távoli eljárásokat használni egy távoli szerveren, mintha azok helyiek lennének.
Az XML-RPC egy hasznos eszköz különböző rendszerek közötti egyszerű adatcsere és távoli eljárások hívásához. Bár vannak biztonsági és teljesítménybeli problémák, de az egyszerűsége és széles körű támogatottsága miatt továbbra is népszerű.
Töltsük le a XML-RPC csomagot: https://archive.apache.org/dist/ws/xmlrpc/v1.1/ ról az xmlrpc-1.1.zip-et
1. Feladat: Tekintsük át a mintakódot és Integer osztály helyett adjunk át összetett adattípust. Pl. class Person(name, age)….
2. Feladat: Írjuk meg a klienst Python-ban vagy valamilyen más nyelven
Kliens:
import java.util.Vector; import org.apache.xmlrpc.XmlRpcClient; public class Client { public static void main (String [] args) { try { XmlRpcClient client = new XmlRpcClient("http://localhost/RPC2"); Vector params = new Vector(); params.addElement(new Integer(17)); params.addElement(new Integer(13)); Object result = client.execute("sample.sum", params); int sum = ((Integer) result).intValue(); System.out.println("The sum is: "+ sum); } catch (Exception exception) { System.err.println("JavaClient: " + exception); } } }
Server:
import org.apache.xmlrpc.WebServer; public class Server { // this function will be called public Integer sum(int x, int y) { return new Integer(x + y); } public static void main(String[] args) { try { WebServer server = new WebServer(80); server.addHandler("sample", new Server()); server.start(); System.out.println("Server started."); } catch (Exception exception) { System.err.println("JavaServer: " + exception); } } }