Hi all,
I'm using xmlrpc-2.0 with Java 1.5.0 (I think update 5). I have a
problem with long requests.
My Java client implementation calls a dummy PHP script that waits for
some time and then returns the start and end times using XMLRPC.
This works perfectly fine if the script waits for up to 5 minutes.
The debug output from a successful call is:
Created client to url space
http://bioinf.mpi-sb.mpg.de/projects/gotax/wait.php
Unable to determine the value of the system property
'org.apache.xmlrpc.TypeFactory': access denied
(java.util.PropertyPermission org.apache.xmlrpc.TypeFactory read)
Beginning parsing XML input stream
startElement: methodResponse
startElement: params
startElement: param
startElement: value
startElement: string
endElement: string
endElement: value
endElement: param
endElement: params
endElement: methodResponse
Spent 12 millis parsing
Spent 150 millis in request/process/response
However, the real application I'm interested in will take probably some
hours. If the PHP script waits longer than five minutes I get the
following error from XmlRpcClient with debug set to true:
Created client to url space
http://bioinf.mpi-sb.mpg.de/projects/gotax/wait.php
Unable to determine the value of the system property
'org.apache.xmlrpc.TypeFactory': access denied
(java.util.PropertyPermission org.apache.xmlrpc.TypeFactory read)
Spent 803665 millis in request/process/response
Avoiding obscuring previous error by supressing error encountered while
ending request: org.apache.xmlrpc.XmlRpcClientException: Exception
closing URLConnection
Unexpected end of file from server
java.net.SocketException: Unexpected end of file from server
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:684)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:682)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:554)
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:936)
at org.apache.xmlrpc.DefaultXmlRpcTransport.sendXmlRpc(Unknown Source)
at org.apache.xmlrpc.XmlRpcClientWorker.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at gotaxexplorer.client.Runner.run(Runner.java:61)
The XmlRpcClientLite throws this exception:
XmlRpcClientLite:
Server returned invalid Response.
java.io.IOException: Server returned invalid Response.
at org.apache.xmlrpc.LiteXmlRpcTransport.sendRequest(Unknown Source)
at org.apache.xmlrpc.LiteXmlRpcTransport.sendXmlRpc(Unknown Source)
at org.apache.xmlrpc.XmlRpcClientWorker.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at org.apache.xmlrpc.XmlRpcClient.execute(Unknown Source)
at gotaxexplorer.client.Runner.run(Runner.java:60)
Here is the client code I use:
XmlRpc.setKeepAlive(true);
XmlRpc.setDebug(true);
XmlRpcClient xml = new XmlRpcClient(url);
Vector params = new Vector(2);
params.addElement(query);
params.addElement(param);
Object result = xml.execute(method, params);
Does anyone have an idea?
Thanks in advance.
Andreas