Я использую 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);
}
Say I invokoe удаленную процедуру findIssue. Я являюсь аутентифицированным пользователем. Три вещи могут случиться:
1) Объект Issue найден, у меня есть разрешение на его использование, сериализован удаленно и неэтериализован локально. 2) Объект Issue найден, но у меня нет разрешения на его использование. 3) Объект Issue не найден.
2 и 3 являются ситуациями с исключениями, но насколько я могу судить, XML-RPC не поддерживает исключения. Если бы были только случаи 1) и 3), я мог бы вернуть пустую ошибку, если она не была найдена, но поскольку есть другие возможности, мне нужно более общее решение.
Спасибо!