几天来,我们的应用程序出现了问题。我们使用 SoapHttpClientProtocol 来调用 java mbean。这基本上会调用 java webservice 来调用方法。
我们的问题是有时会遇到以下异常:
XML 文档中存在错误 (1, 172089)。在
System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader、字符串编码样式、XmlDeserializationEvents 事件)
在 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader
xmlReader,字符串编码样式)位于
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
消息、WebResponse 响应、流响应Stream、布尔值
异步调用)在
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(字符串
方法名称,对象[]参数)位于
DynamicMBeanResourceBinding.Invoke(OperationRequestType
ManagedResourceOperation)位于 JMXConnectorService.cs:第 781 行
JMXWSClient.InvokeMethodOnObject(字符串对象名,字符串方法名,
连接 \Client.cs 中的 ParameterType[] paramValue):第 132 行
原因:发生意外的文件结束。以下元素
未关闭:图标
我们在通信层的最后一个代码是:
/// <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?任何帮助或想法都非常受欢迎。
以干净的方式完成此操作的最简单方法是创建 SOAP 扩展。我在这里找到了一个很好的教程。
http://www.codeproject.com/KB/webservices/efficientsoapextension.aspx http://www.codeproject.com/KB/webservices/efficientsoapextension.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)