/xmlrpc-Java-server-Python-Client

Create Simple xmlrpc java code and access python code

Primary LanguageJava

xmlrpc-Java-server-Python-Client

##Java Server

	mvn archetype:create -DgroupId=xmlrpc.server -DartifactId=JavaServer

And open the pom.xml file in

	gedit JavaServer/pom.xml

Add this dependency in

<dependencies>
    ....

	<dependency>
            <groupId>xmlrpc-helma</groupId>
            <artifactId>xmlrpc-helma</artifactId>
            <version>1.0</version>
        </dependency>

        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xerces</artifactId>
            <version>1.4.0</version>
        </dependency>
    .....
<dependencies>

And open your Java application file add those function

	gedit JavaServer/src/main/java/xmlrpc/server/App.java
package xmlrpc.server;


import helma.xmlrpc.WebServer;
import java.util.Hashtable;

/**
 * Hello world!
 *
 */
public class App 
{
    
     // This public method will be exposed to XML-RPC client
     public Hashtable sumAndDifference(int x, int y) {
        Hashtable result = new Hashtable();
        result.put("sum", new Integer(x + y));
        result.put("difference", new Integer(x - y));
        return result;
    }

    public void print() {
        System.out.println("Print Systems");
    }

    public static void main( String[] args ) {
        try {
            WebServer server = new WebServer(8080);
            // Our handler is a regular java object
            server.addHandler("sample", new App());
        } catch (Exception exception) {
            System.err.println("JavaServer" + exception.toString());
        }
    }
}
	cd JavaServer
	mvn package
	mvn dependency:copy-dependencies -DoutputDirectory=jar-dir
	java -cp jar-dir/xmlrpc-helma-1.0.jar:.:jar-dir/xerces-1.4.0.jar:.:target/JavaServer-1.0-SNAPSHOT.jar xmlrpc.server.App

##Python Client

open new terminal

>>> import xmlrpclib
>>> proxy=xmlrpclib.ServerProxy("http://localhost:8080/")
# sample is object is  create in java
>>> proxy.sample.sumAndDifference(100,50)
{'sum': 150, 'difference': 50}