成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓
當(dāng)前位置:工程項(xiàng)目OA系統(tǒng) > 泛普各地 > 江蘇OA系統(tǒng) > 南京OA系統(tǒng) > 南京OA快博
實(shí)現(xiàn)隱式和顯式SOAP消息頭
申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114
來源:泛普軟件 實(shí)現(xiàn)隱式和顯式SOAP消息頭(一)用戶可以使用通常稱為顯式和隱式消息頭在 WSDL 定義中定義 SOAP 消息頭。本文學(xué)習(xí)這兩種樣式之間的區(qū)別以及在使用 JAX-RPC 進(jìn)行開發(fā)時(shí)這些區(qū)別是如何影響您的。
SOAP 規(guī)范描述了 SOAP 信封可以包括一個(gè)可選的消息頭部分。該消息頭用來傳輸并不屬于實(shí)際消息的有效載荷部分的數(shù)據(jù)。WSDL 規(guī)范定義了如何將 SOAP 消息頭數(shù)據(jù)聲明為 Web 服務(wù)定義的一部分。在 WSDL 定義中有兩種定義 SOAP 消息頭的方式:顯式和隱式消息頭 。
SOAP 消息頭的樣式
SOAP 消息頭的典型應(yīng)用是用來傳送上下文的數(shù)據(jù)。例如,如果消息中包括數(shù)字簽名,那么此簽名將最有可能在 SOAP 消息頭中傳送。另一個(gè)例子是用于 Web服務(wù),這些服務(wù)支持與客戶端之間進(jìn)行某些形式的會(huì)話。一旦建立了這樣的會(huì)話,它們就要應(yīng)該將特定的標(biāo)識(shí)符與每個(gè)請(qǐng)求一起發(fā)送。 WS-AtomicTransaction 規(guī)范(參閱 參考文獻(xiàn)) 同時(shí)還描述了一種非常類似的機(jī)制, 這種機(jī)制用于在多個(gè)Web 服務(wù)之間運(yùn)行交互的協(xié)調(diào)性序列。

WSDL 規(guī)范提供了兩種不同的識(shí)別 SOAP 消息頭字段用法的方法。在顯式消息頭中,用戶將消息頭的所有信息添加給服務(wù)的 portType 了。它作為附加的參數(shù)顯示給客戶端。這種樣式的優(yōu)點(diǎn)在于客戶端能夠直接將所有的信息傳送給該服務(wù)。其不足之處就是它經(jīng)常將服務(wù)的外部接口和與它的業(yè)務(wù)意圖毫不相干的信息群集在一起。
下面是使用隱式消息頭的好處:消息頭信息并不是 portType 的一部分,因此不會(huì)影響服務(wù)的功能性接口。另一方面,隱式消息頭很難作為標(biāo)題以編程的方式處理。
在更加深入了解有關(guān)編程方面的詳細(xì)信息之前, 我們來看一看這些不同的樣式是如何定義的。
WSDL 中 SOAP 消息頭的綁定類型
描述 SOAP 頭不同演示的最簡(jiǎn)單方式就是從實(shí)例開始講述。下面清單 1 中的 WSDL 摘錄是摘自以前的解釋 SOAP 消息頭用法的一篇文章:
清單 1. WSDL 中 SOAP 消息頭的綁定 http://soapheader.ibm.com" ...>
...
type="intf:StockService">
"http://schemas.xmlsoap.org/soap/http"/>
part=
"request_header" use="literal"/>
...
您能夠看到在 WSDL 文件的綁定部分中特別的位置上使用了一個(gè)名為的元素。它包含在 元素中,該元素告訴用戶在該處存在 SOAP 消息頭片斷,可作為操作的部分請(qǐng)求消息。 元素的內(nèi)容能夠識(shí)別在消息頭中傳送的消息部分。
這樣做顯得非常簡(jiǎn)潔易懂,但這是顯式消息頭還是隱式消息頭?顯然,從上面的摘錄來看,不能準(zhǔn)確區(qū)分。它其實(shí)可以是兩種方式的任意一種,這是因?yàn)椋合㈩^綁定定義了消息 intf:getLastSellPriceRequest 中名為 request_header 的部分,而它又是 SOAP 信封的消息頭部分。這種消息頭樣式依賴于此消息部分是否被用于 Web 服務(wù)的 portType 中。讓我們?cè)敿?xì)地研究一下這兩種情況。
顯式消息頭
如果消息頭是服務(wù) 的一部分,那么就可以調(diào)用消息頭定義顯式。換句話說,名為 request_header 的消息部分必需在 portType 中使用,如 清單 2 所示。
清單 2. WSDL 中的顯式 SOAP 消息頭
name="parameters"/>
"getLastSellPriceRequest"/>
"getLastSellPriceResponse"/>
請(qǐng)注意名為 getLastSellPriceRequest 的消息包括兩部分。一部分加入到SOAP 請(qǐng)求消息的消息體部分,另一部分加入到消息頭中。清單 3 顯示了 WSDL 文件的相關(guān)部分,WSDL 文件顯示了這兩個(gè)部分:
清單 3. WSDL - SOAP 綁定中的顯式 SOAP 頭
"request_header" use="literal"/>
元素定義了 Web 服務(wù)的外部接口。它定義了哪些數(shù)據(jù)要作為請(qǐng)求消息的一部分發(fā)送。如果這些請(qǐng)求數(shù)據(jù)在該請(qǐng)求消息的 SOAP 消息頭部分中傳送,那么用戶就可以調(diào)用這個(gè)顯式消息頭。該操作同樣分別適用于部分(或者全部)的響應(yīng)消息被定義為頭元素的情況。

本文內(nèi)容來自自互聯(lián)網(wǎng)公開信息或用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人,版權(quán)歸原作者所有。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。若發(fā)現(xiàn)侵權(quán)或違規(guī)內(nèi)容請(qǐng)聯(lián)系電話4008352114或郵箱442699841@qq.com,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
本站推薦
- 1MES系統(tǒng)項(xiàng)目建設(shè):目標(biāo)、需求與價(jià)值實(shí)現(xiàn)
- 2系統(tǒng)技術(shù)架構(gòu)詳解:目標(biāo)、實(shí)現(xiàn)與全階段實(shí)施規(guī)劃
- 3上海電梯維保合同管理如何實(shí)現(xiàn)高效規(guī)范管理
- 4XX抽水蓄能電站實(shí)現(xiàn)信息化高效管理
- 5泛普知識(shí)管理模塊:多維度實(shí)現(xiàn)知識(shí)獲取
- 6港口生產(chǎn)管理升級(jí):一站式系統(tǒng)實(shí)現(xiàn)高效作業(yè)與風(fēng)險(xiǎn)管控
- 7機(jī)加工生產(chǎn)管理系統(tǒng)性價(jià)比高,實(shí)現(xiàn)降本增效關(guān)鍵之選
- 8高達(dá)鋼鐵物流管理系統(tǒng)助你實(shí)現(xiàn)高效物流成本管控
- 9b端倉(cāng)庫(kù)管理系統(tǒng)助你實(shí)現(xiàn)高效庫(kù)存精準(zhǔn)管控

