我正在使用Redstone XML-RPC,但此问题适用于所有XML-RPC通信。如何处理XML-RPC中的错误响应?
考虑:
static interface Jira
{
public String login(String username, String password) throws XmlRpcFault;
public void logout(String loginToken) throws XmlRpcFault;
public Issue findIssue(int issueId) throws XmlRpcFault;
}
public static void main(String[] args) throws Exception
{
Jira jira = (Jira) XmlRpcProxy.createProxy("http://jira.atlassion.com/RPC2", new Class[] { Jira.class });
String token = jira.login(args[ 0 ], args [ 1 ]);
jira.logout(token);
}
说我invokoe的findIssue远程过程。我是经过身份验证的用户。可能发生三件事:
1)发现问题对象,我有权使用它,远程序列化,并在本地非序列化。 2)发现问题对象,但我没有授权使用它。 3)找不到问题对象。
2和3是异常情况,但据我所知,XML-RPC不支持异常。如果只有1)和3)的情况,如果找不到它,我可能会返回一个空问题,但由于还有其他可能性,我需要一个更一般的解决方案。
谢谢!