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