编写C#客户端以使用返回数组对象的Java Web服务
发布时间:2020-12-15 06:49:22 所属栏目:百科 来源:网络整理
导读:我正在编写一个C#客户端,调用一个用 Java编写的Web服务(由另一个人).我已经添加了一个web引用到我的客户端,我可以调用方法在web服务ok. 该服务已更改为返回一组对象,并且客户端未正确解析返回的SOAP消息. MyResponse[] MyFunc(string p)class MyResponse{ lo
我正在编写一个C#客户端,调用一个用
Java编写的Web服务(由另一个人).我已经添加了一个web引用到我的客户端,我可以调用方法在web服务ok.
该服务已更改为返回一组对象,并且客户端未正确解析返回的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#客户端调用返回一个对象[]的Java Web服务?如果有必要,我将致力于一个消毒的演示. 编辑:这是通过“添加Web引用…”的Web引用. VS 2005,.NET 3.0. 解决方法
已经有一段时间了,但是我似乎记得在.Net和Java Web服务之间如何处理默认的命名空间方面的细微差异.
仔细检查生成的c#代理类和在其中声明的任何命名空间(特别是默认值xmlns =“”),这与Java服务期望的一样.可能会有非常微妙的差异,您将不得不重新创建. 如果是这种情况,那么您将在c#属性中提供更多的命名空间声明. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |