我正在編寫一個C#客戶端,它調用由Java(由另一個人)編寫的Web服務。我已經爲我的客戶添加了一個Web引用,並且我可以在Web服務中調用方法。編寫C#客戶端以使用返回對象數組的Java Web服務
服務被更改爲返回一個對象數組,客戶端沒有正確解析返回的SOAP消息。
MyResponse[] MyFunc(string p)
class MyResponse
{
long id;
string reason;
}
當我的生成的C#代理調用web服務(使用SoapHttpClientProtocol.Invoke),我期待具有1長度的MyResponse []數組,即一個單一的元件。無論服務實際返回什麼,Invoke調用後的內容都是id = 0和reason = null的元素。使用數據包嗅探器,我可以看到服務正在返回看起來是合法的soap消息,id和理由設置爲非空值。
是否有一些技巧讓C#客戶端調用返回someobject []的Java Web服務?如有必要,我將努力獲得一個消毒過的演示。
編輯:這是通過「添加Web引用...」的Web引用。 VS 2005,.NET 3.0。
您是使用「添加Web引用」(.NET 2.0)還是「添加服務引用」(.NET 3.0)? – 2008-09-15 17:19:43