2008-09-09 1 views
3

Каков самый простой способ извлечь исходное исключение из исключения, возвращаемого при реализации XML-RPC Apache?Обработка исключений Apache XML-RPC

+0

Каков контекст этого вопроса? Вы используете XML-RPC напрямую? – ScArcher2 2008-09-09 21:44:14

+0

Я использую реализацию Apache, а именно http://ws.apache.org/xmlrpc/ – 2008-09-11 14:04:39

ответ

3

Оказывается, что получить исключение из причины, за исключением Apache является правильным.

} catch (XmlRpcException rpce) { 
    Throwable cause = rpce.getCause(); 
    if(cause != null) { 
     if(cause instanceof ExceptionYouCanHandleException) { 
      handler(cause); 
     } 
     else { throw(cause); } 
    } 
    else { throw(rpce); } 
} 
1

В соответствии с XML-RPC Spec он возвращает «ошибку» в xml.

Является ли это «Исключением», на которое вы ссылаетесь, или ссылаетесь на исключение Java, сгенерированное при вызове XML-RPC?

пример Fault

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>