9

数日間、アプリに問題が発生しました。Java mbeanを呼び出すために、SoapHttpClientProtocolを使用します。これは基本的に、メソッドを呼び出すためにJavaWebサービスを呼び出します。

私たちの問題は、次の例外が発生する場合があることです。

XMLドキュメント(1、172089)にエラーがあります。System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader、String encodingStyle、XmlDeserializationEvents events)
at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader、String encodingStyle)at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse( SoapClientMessageメッセージ、WebResponse応答、Stream responseStream、Boolean asyncCall)at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName、Object [] parameters)at DynamicMBeanResourceBinding.Invoke(OperationRequestType ManagedResourceOperation)in JMXConnectorService.cs:line 781 at JMXWSClient .InvokeMethodOnObject(String objectName、String methodName、ParameterType [] paramValue)in connection \ Client.cs:line 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をログに記録する方法はありますか?どんな助けやアイデアも大歓迎です。

4

1 に答える 1

3

これをクリーンな方法で行う最も簡単な方法は、SOAP拡張機能を作成することです。ここで良いチュートリアルを見つけました。

http://www.codeproject.com/KB/webservices/efficientsoapextension.aspx

于 2011-10-18T08:22:00.120 に答える