客户端:
package client;
import java.util.Hashtable;
import java.util.Vector;
import org.apache.xmlrpc.*;
public class XmlRPCClient {
// The location of our server.
private final static String server_url = "http://192.168.1.123";
public static void main(String[] args) throws Exception {
XmlRpc.debug = true;
// Create an object to represent our server.
XmlRpcClient server = new XmlRpcClient(server_url);
// Build our parameter list.
Vector params = new Vector();
params.addElement(new Integer(5));
params.addElement(new Integer(3));
// Call the server, and get our result.
Hashtable result = (Hashtable) server.execute(
"mysample.sumAndDifference", params);
int sum = ((Integer) result.get("sum")).intValue();
int difference = ((Integer) result.get("difference")).intValue();
System.out.println("Sum: " + Integer.toString(sum) + ", Difference: "
+ Integer.toString(difference));
}
}
服务端:
package server;
import java.util.Hashtable;
import org.apache.xmlrpc.WebServer;
public class JavaServer {
public JavaServer() {
}
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 static void main(String[] args) {
try {
// Invoke me as .
WebServer webserver = new WebServer(80);
webserver.addHandler("mysample", new JavaServer());
webserver.start();
} catch (Exception exception) {
System.err.println("JavaServer: " + exception.toString());
}
}
}
也可以起个web服务
这里用tomcat
定义一个servlet:
package tom;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.xmlrpc.XmlRpcServer;
public class ServletXmlRPCServer extends HttpServlet {
private static final long serialVersionUID = -2030880456613992420L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
XmlRpcServer xmlrpc = new XmlRpcServer();
xmlrpc.addHandler("sampleService", new SampleService());
byte[] result = xmlrpc.execute(request.getInputStream());
response.setContentType("text/xml");
response.setContentLength(result.length);
OutputStream out = response.getOutputStream();
out.write(result);
out.flush();
}
}