سؤال

ما هي أسهل طريقة لاستخراج الاستثناء الأصلي من الاستثناء الذي تم إرجاعه عبر تطبيق Apache لـ XML-RPC؟

هل كانت مفيدة؟

المحلول

اتضح أن الحصول على استثناء السبب من استثناء Apache هو الاستثناء الصحيح.

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

نصائح أخرى

بحسب ال مواصفات XML-RPC تقوم بإرجاع "الخطأ" في ملف XML.

هل هذا هو "الاستثناء" الذي تشير إليه أم أنك تشير إلى استثناء Java الذي تم إنشاؤه أثناء إجراء استدعاء XML-RPC؟

مثال خطأ

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> 
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top