Caché での Web サービスおよび Web クライアントの作成
WS-Addressing ヘッダ要素の追加と使用
[Home] [Back] [Next]
InterSystems: The power behind what matters   
Class Reference   
Search:    

この章では、WS-Addressing ヘッダ要素の追加方法および使用方法を説明します。

この規格の詳細へのリンクは、最初の章の Caché でサポートされる規格 を参照してください。
このドキュメントで前述の フォルト発生時の WS-Addressing ヘッダ要素の追加 も参照してください。
概要
SOAP 1.1 と SOAP 1.2 の WS-Addressing 規格で定められているように、WS-Addressing ヘッダ要素を SOAP メッセージに追加することができます。これには、以下のいずれかを実行します。
WSDL への影響
Web サービスの場合、WSADDRESSING パラメータは、生成された WSDL に影響しません。同様に、Web クライアントに対してこれを指定した場合、WSDL を変更する必要はありません。
WS-Addressing を参照するポリシー文は、WSDL に影響します。ポリシー文を追加する場合、Web クライアントの再生成が必要です。Caché Web クライアントでは、クライアント・クラスを再生成する代わりに、WS-Addressing ポリシー文をクライアントに添付するだけで済みます。
既定の WS-Addressing ヘッダ要素
このセクションでは、Caché で使用される既定の WS-Addressing ヘッダ要素の例について説明します。
要求メッセージにおける既定の WS-Addressing ヘッダ要素
このセクションで前に説明したとおりに WS-Addressing を有効にすると、Web クライアントの要求メッセージには次の WS-Addressing ヘッダ要素が含まれます。
以下はその例です。
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' 
                   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
                   xmlns:s='http://www.w3.org/2001/XMLSchema' 
                   xmlns:wsa='http://www.w3.org/2005/08/addressing'>
   <SOAP-ENV:Header>
      <wsa:Action>http://www.myapp.org/GSOAP.DivideAddressingWS.Divide</wsa:Action>
      <wsa:MessageID>urn:uuid:91576FE2-4533-43CB-BFA1-51D2B631453A</wsa:MessageID>
      <wsa:ReplyTo>
         <wsa:Address xsi:type="s:string">http://www.w3.org/2005/08/addressing/anonymous</wsa:Address>
      </wsa:ReplyTo>
      <wsa:To>http://localhost:8080/csp/gsop/GSOP.DivideAddressingWS.cls</wsa:To>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <Divide xmlns="http://www.myapp.org">
         <arg1 xsi:type="s:decimal">1</arg1>
         <arg2 xsi:type="s:decimal">7</arg2>
      </Divide>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
応答メッセージにおける既定の WS-Addressing ヘッダ要素
このセクションで前に説明したとおりに WS-Addressing を有効にすると、要求メッセージに WS-Addressing ヘッダ要素が含まれているときに、Web サービスの応答メッセージには次の WS-Addressing ヘッダ要素が含まれます。
以下はその例です。
<?xml version="1.0" encoding="UTF-8" ?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' 
                   xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
                   xmlns:s='http://www.w3.org/2001/XMLSchema' 
                   xmlns:wsa='http://www.w3.org/2005/08/addressing'>
   <SOAP-ENV:Header>
      <wsa:Action>http://www.myapp.org/GSOAP.DivideAddressingWS.DivideResponse</wsa:Action>
      <wsa:MessageID>urn:uuid:577B5D65-D7E3-4EF7-9BF1-E8422F5CD739</wsa:MessageID>
      <wsa:RelatesTo>urn:uuid:91576FE2-4533-43CB-BFA1-51D2B631453A</wsa:RelatesTo>
      <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
   </SOAP-ENV:Header>
   <SOAP-ENV:Body>
      <DivideResponse xmlns="http://www.myapp.org">
         <DivideResult>.1428571428571428571</DivideResult>
      </DivideResponse>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
手動での WS-Addressing ヘッダ要素の追加
既定の WS-Addressing ヘッダ要素を使用する代わりに、独自の要素を手動で作成して追加することができます。そのためには、以下の操作を実行します。
  1. %SOAP.Addressing.Properties のインスタンスを作成し、必要に応じてプロパティを指定します。詳細は、クラスリファレンスを参照してください。
  2. Web サービスまたはクライアントの AddressingOut プロパティを %SOAP.Addressing.Properties のこのインスタンスと等しくなるように設定します。
Note:
AddressingOut プロパティを設定すると、Web サービスまたは Web クライアントでは、添付されたポリシーで指定されている WS-Addressing 要素ではなく、このプロパティの WS-Addressing ヘッダ要素が使用されます。
WS-Addressing ヘッダ要素の処理
Caché Web サービスまたは Web クライアントで WS-Addressing ヘッダ要素を含むメッセージを受信すると、サービスまたはクライアントの AddressingIn プロパティは、%SOAP.Addressing.Properties のインスタンスと等しくなるように更新されます。Web サービスまたは Web クライアントは、その AddressingIn プロパティの詳細を検証できるようになります。
%SOAP.Addressing.Properties の詳細は、クラス・リファレンスを参照してください。