通讯转换工具开发_webservice储值卡项目总结之webservice复杂对象类型

这是我第二次做转发前置项目,依然是一个人独立完成。。。。

期间遇到了好多好多bug,现在也不敢说我的程序是多么完美,甚至很多地方,比如地址啊,端口啊,都写死了,后期有时间还需要大改一番,但,总算是在规定时间内完成了。。。

先从wsdl文档中的查询getsvcmaster说起:


<s:element name="getsvcmaster">
    <s:complexType>
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="astr_request" type="tns:getsvcmasterrequest"/>
        </s:sequence>
    </s:complexType>
</s:element>
<s:complexType name="getsvcmasterrequest">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="header" type="tns:requestheader"/>
        <s:element minOccurs="0" maxOccurs="1" name="search" type="tns:svcsearch"/>
    </s:sequence>
</s:complexType>
<s:complexType name="requestheader">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="licensekey" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="username" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="lang" type="s:string"/>
        <s:element minOccurs="1" maxOccurs="1" name="pagerecords" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="pageno" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="updatecount" type="s:int"/>
        <s:element minOccurs="0" maxOccurs="1" name="messagetype" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="messageid" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="version" type="s:string"/>
    </s:sequence>
</s:complexType>
<s:complexType name="svcsearch">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="txdate_yyyymmdd" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="txtime_hhmmss" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="storecode" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="tillid" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="svcardno" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="cashiercode" type="s:string"/>
    </s:sequence>
</s:complexType>
<s:element name="getsvcmasterResponse">
    <s:complexType>
        <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="getsvcmasterResult" type="tns:getsvcmasterresponse"/>
        </s:sequence>
    </s:complexType>
</s:element>
<s:complexType name="getsvcmasterresponse">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="header" type="tns:responseheader"/>
        <s:element minOccurs="0" maxOccurs="1" name="master" type="tns:svcmaster"/>
    </s:sequence>
</s:complexType>
<s:complexType name="responseheader">
    <s:sequence>
        <s:element minOccurs="1" maxOccurs="1" name="responsecode" type="s:short"/>
        <s:element minOccurs="0" maxOccurs="1" name="responsemessage" type="s:string"/>
        <s:element minOccurs="1" maxOccurs="1" name="pagerecords" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="pageno" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="updatecount" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="maxrecords" type="s:int"/>
        <s:element minOccurs="1" maxOccurs="1" name="maxpageno" type="s:int"/>
        <s:element minOccurs="0" maxOccurs="1" name="messagetype" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="messageid" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="version" type="s:string"/>
    </s:sequence>
</s:complexType>
<s:complexType name="svcmaster">
    <s:sequence>
        <s:element minOccurs="0" maxOccurs="1" name="systemdate_yyyymmdd" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="systemtime_hhmmss" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="svcardno" type="s:string"/>
        <s:element minOccurs="1" maxOccurs="1" name="initialamount" type="s:decimal"/>
        <s:element minOccurs="1" maxOccurs="1" name="balance" type="s:decimal"/>
        <s:element minOccurs="0" maxOccurs="1" name="status" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="activedate_yyyymmdd" type="s:string"/>
        <s:element minOccurs="0" maxOccurs="1" name="effectdate_yyyymmdd" type="s:string"/>
        <s:element minOccurs="1" maxOccurs="1" name="extenddays" type="s:int"/>
    </s:sequence>
</s:complexType>


很明显,属于复杂对象类型的webservice,一开始,我被这层层嵌套的关系绕晕了,发送给webservice根本不成功,网上也没找到类似复杂的例子,然后项目有很急,最终我终于发现,eclipse竟然可以根据wsdl地址自动生成客户端调用webservice的代码!!!!竟然!!!!!

步骤如下:
1.在项目中点击右键,选择New->Other

2.对话框列表中选择web services->web service client,然后点击next

3.service definition中填写wsdl地址,然后点击finish,就能自动生成了~~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值