What is the easiest way to extract the original exception from an exception returned via Apache's implementation of XML-RPC?
Asked
Active
Viewed 2,336 times
3
-
What is the context of this question? Are you using XML-RPC directly? – ScArcher2 Sep 09 '08 at 21:44
-
I'm using Apache's implementation, namely http://ws.apache.org/xmlrpc/ – John with waffle Sep 11 '08 at 14:04
2 Answers
4
It turns out that getting the cause exception from the Apache exception is the right one.
} catch (XmlRpcException rpce) {
Throwable cause = rpce.getCause();
if(cause != null) {
if(cause instanceof ExceptionYouCanHandleException) {
handler(cause);
}
else { throw(cause); }
}
else { throw(rpce); }
}

John with waffle
- 4,113
- 21
- 32
1
According to the XML-RPC Spec it returns the "fault" in the xml.
Is this the "Exception" you are referring to or are you refering to a Java Exception generated while making the XML-RPC call?
Fault example
HTTP/1.1 200 OK
Connection: close
Content-Length: 426
Content-Type: text/xml
Date: Fri, 17 Jul 1998 19:55:02 GMT
Server: UserLand Frontier/5.1.2-WinNT
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>4</int></value>
</member>
<member>
<name>faultString</name>
<value>
<string>Too many parameters.</string>
</value>
</member>
</struct>
</value>
</fault>
</methodResponse>

ScArcher2
- 85,501
- 44
- 121
- 160
-
Let's say basic authentication is used... how do you get the header to be HTTP/1.1 401 Unauthorized rather? – Jaco Van Niekerk Jan 17 '12 at 12:24