高分求java实现SAOP、WSDl用法例子(最好是电信与sp之间通信的例子)

来源:百度知道 编辑:UC知道 时间:2024/05/24 16:32:35
webservice的例子,当中涉及到SAOP的形成、解析、WSDL的用法。最好是电信与SP之间通信的例子。
我的邮箱zhaotao_king@163.com
只要您的例子符合要求,觉得分少,邮件告诉我加分!

当我们用web service对外提供接口服务的时候,可能很多接口会返回复杂类型,比如数组; 在此次利用.Net下面WCF和我们ASSP API【Alisoft SaaS Platform API】进行联调的时候,就发现了问题;如果要想让通过WSDL发布的web service具有最大化的兼容性,最好是参考WS-I【Web Services Interoperability】标准,而不要仅仅局限于SOAP标准;以下就返回数组的问题进行下探讨;

ASSP API接口之一为getUsingUser,返回的对象为数组,数组元素也为复杂对象SimpleUserInfo,其中包括两个属性userId和userName;在WSDL声明此type的时候默认采用的是soapenc:Array的方式,这也是SOAP规范中的方式;其声明部分如下:
<xs:complexType name="ArrayOfSimpleUserInfo">
<xs:complexContent>
<xs:restriction base="soapenc:Array">
<xs:attribute ref="soapenc:arrayType" wsdl:arrayType="ns1:SimpleUserInfo[]"></xs:attribute>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
该声明方式在和大部分的客户端语言联调时没有问题,比如Java、.Net WSE 2.0、.Net WSE 3.0、Php;但是在利用WCF进行联调时就出现了问题,其表现为:1)在vs2008中通过Add Service Reference添加服务时不成功,生成的代理类为空;2)若通过命令行工具Svcutil生成,提示不成功,但能看到错误信息,提示如下: