動的パートナ・リンクのWSDLファイルのオーバーライド

場合によっては、次のような理由によって、動的パートナ・リンクによって使用されるデフォルトWSDLファイルをオーバーライドする必要があります。

  • メッセージ保護セキュリティ・ポリシーを使用するサービスと統合する必要がある。

  • WSDLに、メッセージ暗号化に使用される証明書など重要な情報が含まれている可能性がある。

正規化されたメッセージのプロパティendpointWSDLによって、動的パートナ・リンクのWSDLファイルを指定できます。エンドポイントのみでなく、WSDL全体を動的に指定する必要があります。これにより、WSDLファイルをOracle Web Services Manager (OWSM)に渡すことができ、その後、OWSMは指定されたWSDLから適切なサービス証明書を取得できます。

WSDLファイル内の証明書は、次の場合には無視されます。

それ以外の場合、証明書はWSDLファイルから取得されます。

動的パートナ・リンクのWSDLファイルをオーバーライドするには:

  1. 文字列タイプの変数を定義します(この例では、the_wsdl_varが定義されます)。
  2. assignアクティビティの「コピー・ルール」タブで、WSDLを変数the_wsdl_varに割り当てます。
  3. パートナ・リンクを起動するinvokeアクティビティで、「プロパティ」タブをクリックします。
  4. endpointWSDLプロパティをクリックします。

    ノート:

    BPEL 2.0プロセスでは、プロパティは「プロパティ」列に自動的に表示されません。「追加」 アイコンをクリックして、プロパティとその内容(変数またはXPath式)を選択する必要があります。

  5. 「値」列をダブルクリックし、「参照」(...)アイコンを表示します。
  6. 「参照」(...)アイコンをクリックし、「アダプタ・プロパティ値」ダイアログを表示します。
  7. 「参照」アイコンをクリックして、「変数XPathビルダー」ダイアログを表示します。
  8. 変数としてthe_wsdl_varを選択し、「OK」をクリックします。この値によって、動的パートナ・リンクのWSDLが指定されます。

    ノート:

    BPEL 2.0では、「プロパティ」表には、「名前」列および「値」列のみが存在します。「タイプ」列はありません。

    図8-8 invokeアクティビティの正規化されたメッセージのプロパティendpointWSDL

    図8-8の説明が続きます
    「図8-8 invokeアクティビティの正規化されたメッセージのプロパティendpointWSDL」の説明

    完了すると、BPELファイルは次のように定義されます。

    <variables>
      <variable name="the_wsdl_var" type="xsd:string"/>
    </variables>
     
    <assign name="myAssignWsdl">
      <copy>
        <from
    expression='"http://localhost:8001/soa-infra/services/default/ServiceWithNewCer
    tificate!1.0/service_ep?WSDL"'/>
        <to variable="the_wsdl_var"/>
      </copy>
    </assign>
     
    <invoke name="Invoke"
            inputVariable="Invoke_InputVariable" 
            partnerLink="Service"
            portType="ns1:ServiceBPELProcess" 
            operation="process"
            bpelx:invokeAsDetail="no"> 
                       
                <bpelx:inputProperty name="endpointWSDL" 
                                     variable="the_wsdl_var"/>
     
    </invoke>
    

正規化されたメッセージのプロパティの詳細は、「メッセージ・ヘッダーを介した正規化メッセージ・プロパティの伝播」を参照してください。