日期:2014-05-20  浏览次数:20614 次

Web服务-Axis返回自定义数据类型的问题
对方公司好像是用.Net开发的web服务并提供了一个WSDL(描述文档[见二楼],这个逼公司只提供这个文件了。怒!)
我只需要调用服务就可以,我用的是axis进行客户端的开发。其中包括Update、Add、Get三个服务函数而我也只关心这三个,
Update和Add两个方法的输入参数和返回值都是基本数据类型在axis中很好设置,并且我已经成功的调用了没有问题。
问题出现在Get方法上,通过看WSDL了解到它的输入参数是string这没问题,但是返回值是一个叫ArrayOfString的应该是自定义的数据类型,
就不知道怎么调用了。同学说可以用MyEclipse的Web Service功能自动生成调用代码,我也试了可以是可以,但是需要jdk1.5以上,可是系统的
是1.4.2版本的,生成出来的很多代码放到上面都报错不认的,又不能因为加个服务就把jdk换了是不可能的。

还请各位帮帮忙吧,我一直在线等着,如果能提供些调用Get方法或定义ArrayOfString数据类型的代码,鄙人感激不尽了。。。谢谢了

------解决方案--------------------
内容太长了我分开贴
<?xml version="1.0" encoding="utf-8" ?> 
 <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/">
 <types>
 <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
 <s:element name="HelloWorld">
<s:complexType /> 
</s:element>
 <s:element name="HelloWorldResponse">
 <s:complexType>
 <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" /> 
</s:sequence>
</s:complexType>
</s:element>
 <s:element name="Add">
 <s:complexType>
 <s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="fbm" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="fdw" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="fdh" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="fdz" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ffzr" type="s:string" /> 
<s:element minOccurs="1" maxOccurs="1" name="ffl" type="s:int" /> 
<s:element minOccurs="0" maxOccurs="1" name="fkzq" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="fgsdm" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="flx" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftel1" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftelname1" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftel2" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftelname2" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftel3" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftelname3" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftel4" type="s:string" /> 
<s:element minOccurs="0" maxOccurs="1" name="ftelname4" type="s:string" />