2008-09-09 5 views
3

Was ist der einfachste Weg, die ursprüngliche Ausnahme von einer Ausnahme zu extrahieren, die über die Apache-Implementierung von XML-RPC zurückgegeben wurde?Apache XML-RPC-Ausnahmebehandlung

+0

Was ist der Kontext dieser Frage? Verwenden Sie XML-RPC direkt? – ScArcher2

+0

Ich benutze die Implementierung von Apache, nämlich http://ws.apache.org/xmlrpc/ –

Antwort

3

Es stellt sich heraus, dass von der Apache Ausnahme, die Ursache Ausnahme immer ist die richtige.

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

Entsprechend der XML-RPC Spec gibt es den "Fehler" in der XML zurück.

Ist dies die "Ausnahme", auf die Sie sich beziehen, oder verweisen Sie auf eine Java-Ausnahme, die beim Ausführen des XML-RPC-Aufrufs generiert wird?

Fehler Beispiel

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> 
+0

Nehmen wir an, die Standardauthentifizierung wird verwendet ... Wie erhalten Sie die Header als HTTP/1.1 401 Unauthorized eher? –