Apache XML-RPC异常处理
时间:2020-03-05 18:49:58 来源:igfitidea点击:
从Apache的XML-RPC实现返回的异常中提取原始异常的最简单方法是什么?
解决方案
回答
根据XML-RPC Spec,它在xml中返回"故障"。
这是我们所指的"异常",还是我们指的是在进行XML-RPC调用时生成的Java异常?
故障例子
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>
回答
事实证明,从Apache异常中获取原因异常是正确的选择。
} catch (XmlRpcException rpce) { Throwable cause = rpce.getCause(); if(cause != null) { if(cause instanceof ExceptionYouCanHandleException) { handler(cause); } else { throw(cause); } } else { throw(rpce); } }