加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

编写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#属性中提供更多的命名空间声明.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读