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

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

本站推薦
- 1企業(yè)采購訂單處理量大,如何實現(xiàn)采購管理系統(tǒng)?能替代人工操作嗎?
- 2企業(yè)采購管理系統(tǒng)實現(xiàn)與源碼,能幫中小企業(yè)節(jié)省多少成本?
- 3雙非一本通信工程就業(yè)真實現(xiàn)狀
- 4園林管理平臺設計與實現(xiàn)
- 5專業(yè)打造立體倉庫管理系統(tǒng)工程,實現(xiàn)倉庫高效有序管理
- 6材料管理系統(tǒng):精準實現(xiàn)材料分類與高效統(tǒng)計
- 7軟件開發(fā)合同管理方案:保障項目順利推進,實現(xiàn)高效風險管控與成本優(yōu)化
- 8購銷合同管理軟件打印,高效實現(xiàn)合同文件精準快速輸出功能
- 9財務軟件內合同管理:實現(xiàn)合同全生命周期高效管控與風險預警

