Hi,

First, I'm fairly new to XML-RPC but I wanted to thank you developers. The Apache xmlrpc implementation is very nice. Small, simple, and elegant. Congratulations on a job well done.

In my use of your tool I was interested in a higher level interface to the transport mechanism that provided type safety and simpler calling conventions similar to EJB and RMI. I built a small class that is layered on top of Apache xmlrpc which provides this. This class, XmlRpcProxy.java, is a layer on top of the existing xmlrpc codebase and requires no modifications to support its operation.

For those interested the source is available here:
http://www.ruffboy.com/code/XmlRpcProxy.zip
as a zip for or here:
http://www.ruffboy.com/code/XmlRpcProxy.java.gz
as a gzip.

It can also be accessed via ftp at:
ftp://ftp.ruffboy.com/pub
with a user id of "anonymous".

Following is the class javadoc comment describing the operation.

Thanks again for your efforts and for listening.

Regards,
Bob

/**
* Create a proxy which implements a user defined interface allowing
* XML-RPC methods to be invoked in a type safe manner.
* <br>
* An example of the use of this class:
*
* <pre>
* import org.apache.xmlrpc.XmlRpcException;
*
* public interface MyRemoteMethod
* {
* public String doSomething(int age, String name)
* throws XmlRpcException;
* }
* </pre>
*
* In client code:
*
* <pre>
* try
* {
* MyRemoteMethod remote = (MyRemoteMethod)
* XmlRpcProxy.getProxy(url, MyRemoteMethod.class);
* String retVal = remote.doSomething(22, "Pete Holmes");
* System.out.println("Return is: " + retVal);
* }
* catch (XmlRpcException e)
* {
* e.printStackTrace();
* }
* </pre>
*
* This can be implemented on the server by having a handler which implements
* the user defined interface:
*
* <pre>
* class MyHandler implements MyRemoteMethod
* {
* public String doSomething(int age, String name)
* {
* return(name + " is " + age + " years old.");
* }
* }
* </pre>
*
* This handler is then identified to the XML-RPC server via:
*
* <pre>
* XmlRpcServer svr = ....
* svr.addHandler(MyRemoteMethod.class.getName(), new MyHandler());
* </pre>
*
* @author Bob Withers [EMAIL PROTECTED]
*/

Reply via email to