Hi,
We have an XML-RPC server written in PHP with a pile of methods on it.
If we use XmlRpcClientLite, everything works fine, but using
XmlRpcClient we get IOExceptions, depending on the length of the
response from the server. Has anyone noticed this? The XML being
returned by the server is identical in both cases. This is 1.3.1 and
XML-RPC 1.1, multiple platforms.
Now I think we're happy using the LiteClient, though we've been working
on accomodating proxy authentication servers, and there have been a few
problems. First, it seems that some of the headers aren't quite right
(as noted in a previous posting which included a patch), and second, the
lite client doesn't send out the headers the same way the full client
does. So my second question is: is the LiteClient being kept up to speed
with the full client (in terms of its extra capabilities, such as
proxy-authentication)?
My quandary is do we use the full client and fix the proxy stuff
(through patches or ourselves), or do we use the lite client and hunt
down this length problem (it's not immediately obvious what the problem
is or we would have fixed it). Here's the error:
java.io.IOException
at org.apache.xmlrpc.XmlRpcClient$Worker.execute(XmlRpcClient.java:354)
at org.apache.xmlrpc.XmlRpcClient.execute(XmlRpcClient.java:149)
You can test the problem like this:
XmlRpcClient xmlrpc = new XmlRpcClient
("http://careo.netera.ca/aloha/server.php");
Vector params = new Vector();
params.add("medicine");
params.add("guest");
params.add("guest");
params.add(new Integer(4));
Hashtable result = (Hashtable) xmlrpc.execute
("repository.simplesearch", params);
System.out.println(result);
The above should give you the error. If you change the int to less than
4, it should work. If you go above, it still won't work. If you change
to XmlRpcClientLite, it will always work.
Thanks for any insight.
Julian
--
Julian Wood
Programmer/Analyst
Learning Commons, University of Calgary