3

我在 HTTPS 上使用 JAX-WS 在 tomcat 上运行 Java Document Literal WebService。Java 和 .Net WS 客户端工作正常,而 iOS 上的 MonoTouch 客户端在 WebService 响应期间抛出异常。我检查了请求是否在服务器上正确命中,但返回到 MonoTouch 客户端的响应在随机 WebService 响应上抛出以下异常(一些响应是成功的):

[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 客户端,我们正在监视网络流量并通过对等方重置连接以及所有响应,即使某些响应返回正常。

有什么帮助吗?

4

1 回答 1

1

您似乎没有收到有效的 XML 响应。可能是服务不喜欢您的请求并返回 (HTML) 错误消息(例如 500)。

查看正在发生的事情的一种简单方法是使用 WireShark(或类似的工具来嗅探网络流量)并从 iOS 模拟器运行应用程序。捕获的数据应显示您的请求和来自服务器的响应。这将肯定地告诉您它是否是 XML 响应,或者,如果不是,您将返回的错误消息。

于 2012-11-30T02:17:00.767 回答