For my uses using a CommonsXmlRpcTransport as an argument to XmlRpcClient.execute() worked well, since I wanted to manage my HttpClient outside of the XmlRpcClient. We will definitely need to round the library out with a CommonsXmlRpcTransportFactory, and make sure we handle multithreading right. Also, if you want to use HTTP authentication, you will need to modify the transport, look for the TODO in the source.
HttpClient httpClient = new HttpClient(getURL());
// configure as you please
CommonsXmlRpcTransport xtransport = new CommonsXmlRpcTransport(getURL(), httpClient);
// I needed HTTP 1.1
// xtransport.setHttp11(true);
// that could also be done directly on the HttpClient
XmlRpcClient xmlrpc = new XmlRpcClient(getURL());
// ...
XmlRpcRequest request = new XmlRpcRequest(methodName, params); Object result = xmlrpc.execute(request, xtransport);
OK, now that I've typed up that example I see some room for improvement of the API :) Hopefully soon I'll have a project where I can justify spending some time reworking it...
-- Ryan Hoegg ISIS Networks http://www.isisnetworks.net
Greg Barnett wrote:
I've checked out the code from CVS following the directions at http://ws.apache.org/xmlrpc/cvs.html, and looked at the JavaDocs at
http://ws.apache.org/xmlrpc/apidocs/index.html
I see CommonsXmlRpcTransport, but CommonsXmlRpcClient and CommonsXmlRpcTransportFactory are not listed.
XmlRpcClient requires an XmlRpcTransportFactory, so I'm not seeing exactly how to construct a client using CommonsXmlRpcTransport. A bit of sample code showing me how this works would be greatly appreciated.
thanks, Greg
Ryan Hoegg wrote:
If you use the code in CVS HEAD, you can plug in a CommonsXmlRpcClient, which supports HTTP 1.1
