// 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)); } } end test.XmlRPCClient//
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 <http://localhost:9001/RPC2>. WebServer webserver = new WebServer(9001); webserver.addHandler("mysample", new JavaServer()); webserver.start(); } catch (Exception exception) { System.err.println("JavaServer: " + exception.toString()); } } } end test.JavaServer//
begin test2.XmlRPCClient// package test2;
import java.util.*; import org.apache.xmlrpc.*; public class XmlRPCClient {
// The location of our server. private final static String server_url = "http://localhost:9001";
public static void main(String[] args) { try { XmlRpc.debug = true; XmlRpcClient server = new XmlRpcClient(server_url); // Build our parameter list. Vector params = new Vector(); Vector arg0 = new Vector(); arg0.add("army"); arg0.add("robin"); params.addElement(arg0); Hashtable arg1 = new Hashtable(); arg1.put("a","a"); arg1.put("b","b"); params.addElement(arg1); Integer arg2 = new Integer(3); params.addElement(arg2); Double arg3 = new Double(11.33); params.addElement(arg3); Boolean arg4 = new Boolean(false); params.addElement(arg4); Date arg5 = Calendar.getInstance().getTime(); params.addElement(arg5); // Call the server, and get our result. Object ret = server.execute("sample.getAllUser",params); Vector result = (Vector)ret; if(result!=null){ System.out.println("result:" + result.size() + "records"); for(int i=0;i<result.size();i++){ System.out.println("result " + i + "is:" + result.get(i)); } } } catch (XmlRpcException exception) { System.err.println("XmlRPCClient: XML-RPC Fault #" + Integer.toString(exception.code) + ": " + exception.toString()); } catch (Exception exception) { exception.printStackTrace(System.err); } } } end test2.XmlRPCClient//
begin test2.JavaServer// package test2; import java.util.*; import org.apache.xmlrpc.WebServer; public class JavaServer {
public JavaServer () { // Our handler is a regular Java object. It can have a // constructor and member variables in the ordinary fashion. // Public methods will be exposed to XML-RPC clients. }
// Invoke me as <http://localhost:9001/RPC2>. WebServer webserver = new WebServer(9001);
webserver.addHandler("sample", new JavaServer()); webserver.start(); } catch (Exception exception) { System.err.println("JavaServer: " + exception.toString()); } } } end test2.JavaServer//
begin test3.XmlRPCSerializable// package test3; import java.util.Vector; public interface XmlRPCSerializable { /*将本对象序列化为Vector对象*/ public Vector serialize(); /*从v中反序列化本对象*/ public void deSerialize(Vector v); } end test3.XmlRPCSerializable//
begin test3.AccountVO// package test3; import java.util.*;
public class AccountVO implements XmlRPCSerializable{ private String acctId; private double balance; public AccountVO() { }
public String toString(){ return "acctId:" + acctId + ",balance:" + balance; } public Vector serialize(){ Vector v = new Vector(); v.add(acctId); v.add(new Double(balance)); return v; }
public String getAcctId() { return acctId; } public void setAcctId(String acctId) { this.acctId = acctId; } public double getBalance() { return balance; } public void setBalance(double balance) { this.balance = balance; }
} end test3.AccountVO//
begin test3.XmlRPCClient// package test3;
import java.util.*; import org.apache.xmlrpc.*;
public class XmlRPCClient {
// The location of our server. private final static String server_url = "http://localhost:9001";
public static void main(String[] args) { try { XmlRpc.debug = false; // Create an object to represent our server. XmlRpcClient server = new XmlRpcClient(server_url);
// Build our parameter list. Vector params = new Vector();
// Call the server, and get our result. Vector result = (Vector) server.execute("mysample.getAllAccountVO", params); if (result != null) { for (int i = 0; i < result.size(); i++) { Vector v = (Vector) result.get(i); AccountVO vo = new AccountVO(); vo.deSerialize(v); System.out.println(vo); } }
begin test3.JavaServer// package test3; import java.util.*; import org.apache.xmlrpc.WebServer; public class JavaServer {
public JavaServer () { }
public Vector getAllAccountVO () { Vector result = new Vector(); AccountVO vo = new AccountVO(); vo.setAcctId("robin"); vo.setBalance(300000.00); result.add(vo.serialize()); vo = new AccountVO(); vo.setAcctId("amy"); vo.setBalance(100000.10); result.add(vo.serialize()); return result; }
public static void main (String [] args) { try {
// Invoke me as <http://localhost:9001/RPC2>. WebServer webserver = new WebServer(9001); webserver.setParanoid (true); // deny all clients webserver.acceptClient ("192.168.0.*"); // allow local access webserver.denyClient ("192.168.0.3"); // except for this one webserver.setParanoid (false); // disable client filter
public class ServletXmlRPCServer extends HttpServlet { 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(); }
} end test4.ServletXmlRPCServer//
begin test4.XmlRPCClient// package test4;
import java.util.*; import org.apache.xmlrpc.*;
public class XmlRPCClient {
// The location of our server. private final static String server_url = "http://localhost:8080/axis/SampleServiceServlet";
public static void main (String [] args) { try { XmlRpc.debug = false; // Create an object to represent our server. XmlRpcClient server = new XmlRpcClient(server_url); // Build our parameter list. Vector params = new Vector(); // Call the server, and get our result. Date result = (Date) server.execute("sampleService.currentTime", params); System.out.println(result.getTime());