有几天,我们的应用程序出了问题。我们使用SoapHttpClientProtocol来调用java。这基本上是调用一个来调用方法。
我们的问题是,有时我们会遇到以下例外:
文档中有一个错误(1,172089)。在System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,String encodingStyle,XmlDeserializationEvents events)
在System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader,String encodingStyle) at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message,WebResponse response,Stream responseStream,布尔asyncCall( System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object[]参数) at DynamicMBeanResourceBinding.Invoke(OperationRequestType ManagedResourceOperation),JMXConnectorService.cs:line 781 at JMXWSClient.InvokeMethodOnObject(String objectName,String methodName,ParameterType[] methodName)
导致:意外的文件结束已经发生。以下元素未关闭:
通信层中的最后一个代码是:
/// <remarks/>
[System.Web.Services.Protocols.SoapHeaderAttribute("soapHeaders", Direction = SoapHeaderDirection.In)]
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://jsr262.dev.java.net/DynamicMBeanResource/Invoke", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Bare)]
[return: System.Xml.Serialization.XmlElementAttribute("ManagedResourceOperationResult", Namespace = "http://jsr262.dev.java.net/jmxconnector")]
public GenericValueType Invoke([System.Xml.Serialization.XmlElementAttribute(Namespace = "http://jsr262.dev.java.net/jmxconnector")] OperationRequestType ManagedResourceOperation)
{
object[] results = this.Invoke("Invoke", new object[] {ManagedResourceOperation});
return ((GenericValueType)(results[0]));
}在框架反序列化之前,有没有记录响应xml的任何方法?任何帮助或想法都是非常欢迎的。
发布于 2011-10-18 08:22:00
以干净的方式进行此操作的最简单方法是创建SOAP扩展。我在这里找到了一个很好的教程。
http://www.codeproject.com/KB/webservices/efficientsoapextension.aspx
https://stackoverflow.com/questions/7684671
复制相似问题