34.4 WS-RM Policyの追加方法

WS-RM 1.2機能では,WSDLファイルにWS-RM Policyを追加することで,WS-RM 1.2機能を有効にします。追加する項目は次のとおりです。

  1. WS-RM Policyで使用する名前空間プレフィクスを定義する
  2. wsdl:definitions要素の子要素としてポリシーを定義する
  3. wsdl:binding要素の子要素でポリシーを参照する

追加例を次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="TestJaxWsService"

<!-- 中略 -->

<!-- 1.WS-RM Policyで使用する名前空間プレフィクスを定義する -->
 xmlns:wsp="http://www.w3.org/ns/ws-policy"
 xmlns:wsrmp="http://docs.oasis-open.org/ws-rx/wsrmp/200702"
 xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
 xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl">

<!-- 2.wsdl:definitions要素の子要素としてポリシーを定義する -->
 <wsp:Policy wsu:Id="WSRM_policy">
   <wsp:ExactlyOne>
     <wsp:All>
       <wsrmp:RMAssertion>
         <wsp:Policy>
           <wsrmp:DeliveryAssurance>
             <wsp:Policy>
               <wsrmp:ExactlyOnce/>
             </wsp:Policy>
           </wsrmp:DeliveryAssurance>
         </wsp:Policy>
       </wsrmp:RMAssertion>
       <wsaw:UsingAddressing/>
       <!-- その他の設定 -->
     </wsp:All>
   </wsp:ExactlyOne>
 </wsp:Policy>

 <wsdl:types>

<!-- 中略 -->

<!-- 3.wsdl:binding要素の子要素でポリシーを参照する -->
 <wsdl:binding name="testJaxWsBinding" type="tns:TestJaxWs">
   <wsp:PolicyReference URI="#WSRM_policy"/>

<!-- 後略 -->

太字で示す個所が,名前空間プレフィクスの定義,WS-RM Policyの定義,またはWS-RM Policyの参照個所です。

wsrmp:DeliveryAssurance要素以下は省略できます。wsrmp:DeliveryAssurance要素以下および「<!-- その他の設定 -->」以外は,そのまま記載します。「<!-- その他の設定 -->」は必要に応じて設定を追加します。「<!-- その他の設定 -->」としてWSDLに追加するプロパティについては「23.4 WS-Policyによる設定」を参照してください。