MYECLIPSE 开发Web Service之详细讲解--第三节

来源:互联网 发布:c语言递归求最大公约数 编辑:程序博客网 时间:2024/05/01 20:10

上面第一节和第二节讲了开发和测验, 这次我再强调下相关注意点

先把webservice在传输过程中的主要内容贴出来。

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:example soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://soap.linkage.com">
<message xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<?xml version="1.0" encoding="UTF-8"?>
<SmterSMS><OrigDomain>PORT</OrigDomain>
<HomeDomain>BOSS</HomeDomain>
<Communicate>06</Communicate>
<BIPCode>BIP6C636</BIPCode>
<ActivityCode>T6000601</ActivityCode>
<ActionCode>0</ActionCode>
<Transido>D000010000000001</Transido>
<ProcessTime>20071130101010</ProcessTime>
<ActionDir>0</ActionDir>
<TestFlag>0</TestFlag>
<ProvinceCode>QHAI</ProvinceCode>
<InModeCode>2</InModeCode>
<TradeEparchyCode>0898</TradeEparchyCode>
<TradeCityCode>INTF</TradeCityCode>
<TradeDepartId>00310</TradeDepartId>
<TradeStaffId>ITFWC000</TradeStaffId>
<TradeDepartPasswd>0123456789</TradeDepartPasswd>
<RouteEparchyCode>INTF</RouteEparchyCode>
<SvcCont>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<SMSC>
<SMSContReq>
<MobNum>139138000000</MobNum>
<SMSCont>1008www.chinamobile.com</SMSCont>
<SendObjectCode>1</SendObjectCode>
<RecvObjectType>00</RecvObjectType>
<SendTimeCode>1</SendTimeCode>
<SmsKindCode>02</SmsKindCode>
<NoticeContentType>0</NoticeContentType>
<SmsTypeCode>20</SmsTypeCode>
<ForceReferCount>1</ForceReferCount>
<SmsPriority>50</SmsPriority>
</SMSContReq></SMSC>]]>
</SvcCont>
</SmterSMS>
</message
</ns1:example>
</soapenv:Body>
</soapenv:Envelope>

 

 SOAP 绑定原则
Web Service 接口与SOAP1.1 协议格式相绑定,所有请求和响应消息均应采用SOAP 格式的消息封装,包含SOAP 封套(Envelope),SOAP 包头(Header)和SOAP 包体(Body)三部分。对任何技术实现的调用者而言,发出的调用请求消息均须带有以上三部分内容,包头和包体消息结构中引用的类型均来自ucsmsContent.xsd和ucsmsHeader.xsd 中的定义。但在SOAP 包体中,如果按照规范定义某一参数为可选,则SOAP 消息中可不包含标识该参数的元素。返回的SOAP 消息结构同请求消息;
在本规范中,为支持事物处理而定义的TransactionID 参数被包含在SOAP 包头中传送,因而,本规范要求所有SOAP 消息均必须带有SOAP 包头,接口程序应根据需要对SOAP 包头中的TransactionID 做相应的处理(用来标识事物或忽略)。
TransactionID 的产生规则是ChannelID+10 位的数字,该10 位数字从1 开始,并且不足10 位的前补0。每次增长的步长为1,依次循环使用。
如:接入渠道为WWW,参见接入平台代码得到接入编码为D00001,加上后面的10位序列,则得到对应的TransactionID值。例如:D000010000000001
本规范遵循WSDL 标准,接口通讯层与HTTP1.1 协议的POST 和GET 绑定在一起。
按本规范规定,服务器和客户端之间均通过HTTP 的POST 方法来进行交互。与此相关,HTTP 报文内容格式与MIME 格式绑定,例如Content-Type 为text/xml等均遵循MIME 标准。
 
通信双方采用一问一答的通讯机制,即一次请求对应于一次应答。

一般情况,通信双方之间的消息发送后等待T秒后未收到响应,应立即重发,再连续发送N次后仍未得到响应则停发。现阶段建议取值为:T=120秒,N=30。

  这节内容意义不大,主要是说明在执行过程中的反映和一些术语的解释。呵呵,以后再补充吧。

原创粉丝点击