2012-11-29 25 views
3

我正在運行一個Java文檔文字WebService,它使用Tomcat上的JAX-WS,網絡位於HTTPS上。 Java & .Net WS客戶端工作正常,而iOS上的MonoTouch客戶端在WebService響應期間拋出異常。我已檢查該請求獲取服務器上打正常,但返回到MonoTouch的客戶端的響應拋出隨機WebService的響應以下異常(有些反應是成功的):Java文檔Literal WebService - 在WS響應期間MonoTouch客戶端出現異常

[System.Xml.XmlException: Document element did not appear. Line 1, position 1. 
    at Mono.Xml2.XmlTextReader.Read() [0x00168] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml/XmlTextReader.cs:629 
    at System.Xml.XmlTextReader.Read() [0x0006b] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml/XmlTextReader2.cs:564 
    at System.Xml.XmlReader.MoveToContent() [0x00050] in /Developer/MonoTouch/Source/mono/mcs/class/System.XML/System.Xml/XmlReader.cs:563 
    at System.Web.Services.Protocols.WebServiceHelper.ReadSoapMessage (System.Xml.XmlTextReader xmlReader, System.Xml.Serialization.XmlSerializer bodySerializer, System.Xml.Serialization.XmlSerializer headerSerializer, Boolean soap12, System.Object& body, System.Web.Services.Protocols.SoapHeaderCollection& headers) [0x00000] in /Developer/MonoTouch/Source/mono/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs:187 
    at System.Web.Services.Protocols.WebServiceHelper.ReadSoapMessage (System.Xml.XmlTextReader xmlReader, System.Web.Services.Protocols.SoapMethodStubInfo method, SoapHeaderDirection dir, Boolean soap12, System.Object& body, System.Web.Services.Protocols.SoapHeaderCollection& headers) [0x00011] in /Developer/MonoTouch/Source/mono/mcs/class/System.Web.Services/System.Web.Services.Protocols/WebServiceHelper.cs:182 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReceiveResponse (System.Net.WebResponse response, System.Web.Services.Protocols.SoapClientMessage message, System.Web.Services.Protocols.SoapExtension[] extensions) [0x00149] in /Developer/MonoTouch/Source/mono/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs:322 
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (System.String method_name, System.Object[] parameters) [0x000b8] in /Developer/MonoTouch/Source/mono/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapHttpClientProtocol.cs:379 

在iOS客戶端,我們正在監視即使有些響應正常返回,網絡流量和獲取連接也可以通過同伴重置所有響應。

任何幫助?

回答

1

它看起來像沒有收到有效的XML響應。可能是該服務不喜歡您的請求並返回了(HTML)錯誤消息(例如500)。

一個簡單的方法來看看發生了什麼是使用WireShark(或類似的工具來嗅探網絡流量),並從iOS模擬器運行應用程序。捕獲的數據應顯示您的請求和來自服務器的響應。這會告訴你,如果它是一個XML響應,或者如果不是,你會收到錯誤消息。

+0

如果連接通過https運行,Fiddler實際上將成爲首選工具。同樣尋找空的響應(零長度內容) - 我不確定WebServiceHelper是否會以合理的方式捕獲並報告它們,但來自XmlReader的錯誤消息看起來差不多。 –

相關問題