私は障害メッセージを受け取りました。私は正常にAndroidでそれをキャッチしました。私が今好きなのは、障害を引き起こした例外のクラスを取得することです。メッセージは次のようになります。AndroidのkSoap2で例外クラスを取得する
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope">
<faultcode>S:Server</faultcode>
<faultstring>Error retrieving user`s [..]</faultstring>
<detail>
<ns2:exception class="com.example.UserException_Exception" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/">
<message>EError retrieving user`s [..]</message>
<ns2:stackTrace>
<ns2:frame class="sun.reflect.DelegatingMethodAccessorImpl" file="DelegatingMethodAccessorImpl.java" line="43" method="invoke"/>
<ns2:frame class="java.lang.reflect.Method" file="Method.java" line="601" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.api.server.InstanceResolver$1" file="InstanceResolver.java" line="246" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.server.InvokerTube$2" file="InvokerTube.java" line="146" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.server.sei.EndpointMethodHandler" file="EndpointMethodHandler.java" line="257" method="invoke"/>
<ns2:frame class="com.sun.xml.ws.server.sei.SEIInvokerTube" file="SEIInvokerTube.java" line="95" method="processRequest"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="629" method="__doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="588" method="_doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="573" method="doRun"/>
<ns2:frame class="com.sun.xml.ws.api.pipe.Fiber" file="Fiber.java" line="470" method="runSync"/>
<ns2:frame class="com.sun.xml.ws.server.WSEndpointImpl$2" file="WSEndpointImpl.java" line="295" method="process"/>
<ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit" file="HttpAdapter.java" line="515" method="handle"/>
<ns2:frame class="com.sun.xml.ws.transport.http.HttpAdapter" file="HttpAdapter.java" line="285" method="handle"/>
<ns2:frame class="com.sun.xml.ws.transport.http.servlet.ServletAdapter" file="ServletAdapter.java" line="143" method="handle"/>
<ns2:frame class="com.sun.xml.ws.transport.http.servlet.WSServletDelegate" file="WSServletDelegate.java" line="155" method="doGet"/>
<ns2:frame class="java.lang.Thread" file="Thread.java" line="722" method="run"/>
</ns2:stackTrace>
</ns2:exception>
</detail>
</S:Fault>
</S:Body>
</S:Envelope>
関連性がないため、トレースの一部を削除しました。
これは、トランザクションのために使用してコード」イムです:
public static Long getCount(String id)
throws XmlPullParserException, IOException {
SoapObject request = new SoapObject(NAMESPACE, "getCount");
request.addProperty("id", id);
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
System.setProperty("http.keepAlive", "false");
HttpTransportSE htse = new HttpTransportSE(URL);
htse.call(URL, soapEnvelope, null);
SoapPrimitive response = (SoapPrimitive) soapEnvelope.getResponse();
Long count = null;
try {
timestampCount = Long.parseLong(response.toString());
} catch (NumberFormatException e) {
e.printStackTrace();
} catch (SoapFault e) {
e.printStackTrace();
}
return count;
}
だから、どのように私はSOAPFaultオブジェクトからclass="com.ltc.mid.pdf.UserCertificateException_Exception"
を得ることについて行くのですか?
ただ、完全に明確にするために:私はどちらかを探しています:
- Javaコード
<detail><exception>
要素
class
atributeを取得するために
<detail><exception>
要素
class
atributeを取得します ありがとう!
ウルのコードを投稿..... – himanshu
呼び出しコードが追加されました。 –
ウル問題を解決するためにこれを使用...のhttp://stackoverflow.com/questions/8179246/getting-following-error-while-calling-a-web-service-svc-in-android-through-kso – himanshu