【发布时间】:2010-09-09 01:17:36
【问题描述】:
我正在编写一个 C# 客户端,它调用一个用 Java 编写的 Web 服务(由另一个人编写)。我已经为我的客户端添加了一个 Web 引用,我可以调用 Web 服务中的方法了。
服务已更改为返回对象数组,而客户端未正确解析返回的 SOAP 消息。
MyResponse[] MyFunc(string p)
class MyResponse
{
long id;
string reason;
}
当我生成的 C# 代理调用 Web 服务(使用 SoapHttpClientProtocol.Invoke)时,我期待一个长度为 1 的 MyResponse[] 数组,即单个元素。 Invoke 调用后我得到的是一个 id=0 和 reason=null 的元素,无论服务实际返回什么。使用数据包嗅探器,我可以看到该服务正在返回看似合法的肥皂消息,其 id 和原因设置为非空值。
让 C# 客户端调用返回 someobject[] 的 Java Web 服务有什么技巧吗?如有必要,我将努力获得一个经过消毒的演示。
编辑:这是通过“添加网络参考...”的网络参考。 VS 2005,.NET 3.0。
【问题讨论】:
-
您使用的是“添加 Web 引用”(.NET 2.0) 还是“添加服务引用”(.NET 3.0)?
标签: c# java web-services