19 ADF Webサービス・データ・コントロールの使用

Oracle Application Development Framework (ADF)には、Webサービス・プロキシを作成しなくてもSOAP Webサービスを起動できるメカニズムとしてWebサービス・データ・コントロールが用意されています。

次のトピックでは、カスタムOracle ADFアプリケーションからWebサービスを起動する技術としてWebサービス・データ・コントロールを使用するためのガイドラインを示します。

前提条件

このドキュメントに示される開発の例を実行する前に、以下の点に注意してください。

  • 必ずJavaバージョン6 (SEまたはEE)を実行してください。

  • 正しいバージョンのOracle JDeveloper IDEがインストールされていることを確認してください。

    注意:

    Oracle JDeveloper IDEを使用してOracle Cloudで開発するには、Oracle JDeveloper Studio Editionバージョン11.1.1.7.1を使用する必要があります。これより新しいバージョンを含む他のOracle JDeveloperのバージョンの場合、Oracle Cloudの統合機能をサポートしていません。Oracle JDeveloper Studio Edition 11.1.1.7.1をOracle Technology Network (http://www.oracle.com/technetwork/developer-tools/jdev/downloads/jdeveloer111171-2183166.html)からダウンロードしてください。

ADF Webサービス・データ・コントロールの使用(作業例)

SaaS Webサービス(Oracle Sales Cloudを介して使用可能なものなど)を起動する便利な方法としてWebサービス・データ・コントロールを使用できます。これは、JCS - SaaS ExtensionにデプロイされているOracle ADFアプリケーションから直接行うことができます。次の例は、Webサービス・データ・コントロールを使用してOracle Sales Cloud内の販売パーティWebサービスを起動する単純なADFアプリケーションを作成する方法を示しています。

始めに、次の手順に従います。
  1. Oracle JDeveloperで、新しいアプリケーションを作成します。
    「新規ギャラリ」ダイアログ・ボックスが開きます。
  2. 「カテゴリ」ペインから、「アプリケーション」を選択します。「アイテム」ペインで、「Fusion Webアプリケーション(ADF)」を選択します。「OK」をクリックします。
  3. 「アプリケーションの名前付け」ダイアログ・ボックスで、アプリケーションに名前を割り当てます。
  4. 「プロジェクト・テクノロジ」タブで、「Webサービス」および「Oracle Cloud」「使用可能」から「選択済」に移動します。
  5. 次の画面で、Modelプロジェクトに適したパッケージ名を入力します。
  6. 後続の画面で、「Oracle Cloud」を選択し、ViewControllerプロジェクトに適したパッケージ名を入力します。
  7. 「終了」をクリックし、アプリケーションを作成します。
  8. アプリケーションを作成した後、「プロジェクト」ペインで「Model」を右クリックし、「新規」を選択します。
    「新規ギャラリ」ダイアログ・ボックスが開き、「すべてのテクノロジ」および「現在のプロジェクト・テクノロジ」タブが表示されます。
  9. 「現在のプロジェクト・テクノロジ」タブで、「ビジネス層」ノードから「Webサービス」を選択してから、「Webサービス・データ・コントロール」を選択します。「OK」をクリックします。
    「Webサービス・データ・コントロールの作成」ダイアログ・ボックスが開きます。
  10. WSDL URLを入力するよう求められます。このドキュメントでは、Oracle Sales Cloud Webサービスにアクセスします。ただし、ここでは任意のOracleまたは非OracleのWebサービスを指定できます。Webサービス・データ・コントロールの名前としてSalesPartyWSDCを入力します。SalesParty Webサービスにアクセスします。通常、販売パーティWebサービスWSDLのフォーマットは、<https://https://<Your_Oracle_Sales_Cloud_URL>/crmCommonSalesParties/SalesPartyService?WSDLです。
    Oracle Sales Cloud WSDLの詳細は、「SOAP Webサービスを介したOracle Sales Cloudデータへのアクセス」を参照してください。
  11. 「Next」をクリックします。
  12. この例では、特定のPartyIDのSalesPartyにアクセスするためにWebサービス・データ・コントロールを構築します。このためにWSDLのgetSalesParty操作を使用します。「データ・コントロール操作」ダイアログ・ボックスで、getSalesParty「選択済」ペインに移動します。
  13. 「エンドポイント認証」ダイアログ・ボックスで、Oracle Sales Cloudの有効なユーザー名およびパスワードを入力します。

    ウィザードのステップを完了し、データ・コントロールを生成します。「すべて保存」をクリックし、作成したデータ・コントロール・ファイルを保存します。「データ・コントロール」ペインに新しいノードが表示されます。



  14. 次に、単純なUIを作成することにより、このWSDCをテストできます。「アプリケーション・ナビゲータ」から、ビュー・コントローラを選択し、プロジェクトを右クリックし、「新規」を選択します。

    注意:

    このUIはテスト目的としてのみ作成されるため、ADF UIのベスト・プラクティスは反映されていません。
  15. JSFカテゴリから、JSFページを選択し、「OK」をクリックします。
  16. 「JSFページの作成」ダイアログ・ボックスで、「ファイル名」フィールドに名前を入力します。この例では、JSFページの名前はtest.jspxです。「XMLドキュメントとして作成」チェック・ボックスを必ず選択してください。
  17. partyIdパラメータを「データ・コントロール」ペインから「jspx」タブにドラッグ・アンド・ドロップします。
  18. 表示タイプとして「ラベル付ADF入力テキスト」を選択します。
  19. getSalesParty(Long)オブジェクトをjspxページにドラッグ・アンド・ドロップし、ADFボタンとして表示することを選択します。
  20. PartyNameオブジェクトをデータ・コントロールからドラッグ・アンド・ドロップし、jspxページ上のADFボタンの下に「ラベル付ADF出力テキスト」として配置します。
  21. 同じタイプを使用してAddress1CityおよびCountryフィールドをOrganization Partyオブジェクトからページにドラッグ・アンド・ドロップします。
    これでjspxページは完成です。
  22. jspページを右クリックし、「実行」を選択します。
    jsp検索ページが開きます。この例では、「パーティID」フィールドにパーティID値を入力し、「発行」をクリックし、レスポンス・ペイロードから名前およびアドレス情報を取得できます。

    ヒント:

    テストを目的としてパーティIDを取得するには、「SOAP Webサービスを介したOracle Sales Cloudデータへのアクセス」で説明されているように、SalesParty Webサービス検索操作を起動します。

データ・コントロールのトラブルシューティング

SSLに関連するエラーが発生した場合、Oracle JDeveloperキーストアに必要なSSL証明書がありません。JDeveloperがサーバーとのSSLハンドシェイクを設定するために使用するよう構成されているキーストアにOracle Sales Cloudサーバーの公開証明書をインポートする必要があります。

このインポートを実行する手順:
  1. この項で説明する販売パーティWSDLの場合、Webブラウザを使用して<https://https://<Your_Oracle_Sales_Cloud_URL>/crmCommonSalesParties/SalesPartyService?WSDLにナビゲートします。
  2. 証明書のローカル・コピーを保存します。一般的な3つのブラウザの最新バージョンを使用して証明書を保存する方法を次に示します。
    • Google Chromeの場合:
      1. URLバーの「サイト情報を表示」(鍵記号)アイコンをクリックします。「接続」タブで、「証明書情報」をクリックします。

      2. 「証明書」ダイアログで、「証明のパス」タブで、CA証明書(*.<domain>.comノードではなく親ノード)を強調表示し、「証明書の表示」をクリックします。新しい「証明書」ダイアログが開きます。

      3. 新しい「証明書」ダイアログで、「詳細」タブの「ファイルにコピー」をクリックします。「証明書のエクスポート ウィザード」が開きます。

      4. ウィザードで、クリックしながらデフォルトのエクスポート・ファイル・フォーマットを受け入れ、ファイル名とパスを入力し、「次へ」「完了」の順にクリックします。

    • Microsoft Explorerの場合:
      1. URLバーの「セキュリティ報告」(鍵記号)アイコンをクリックします。「Web サイトの認証」ポップアップ・ウィンドウで、「証明書の表示」を選択します。

      2. 「証明書」ダイアログで、「証明のパス」タブで、CA証明書(*.<domain>.comノードではなく親ノード)を強調表示し、「証明書の表示」をクリックします。新しい「証明書」ダイアログが開きます。

      3. 新しい「証明書」ダイアログで、「詳細」タブの「ファイルにコピー」をクリックします。「証明書のエクスポート ウィザード」が開きます。

      4. ウィザードで、クリックしながらデフォルトのエクスポート・ファイル・フォーマットを受け入れ、ファイル名とパスを入力し、「次へ」「完了」の順にクリックします。

    • Mozilla Firefoxの場合:
      1. URLバーの「認証局」アイコン(鍵記号)をクリックします。ポップアップ・ダイアログで、「詳細を表示」をクリックします。「ページ情報」ダイアログが開きます。

      2. 「セキュリティ」タブで、「証明書を表示」をクリックします。「証明書ビューアー」が開きます。

      3. 「証明書ビューアー」ダイアログで、「詳細」タブを選択します。「証明書の階層」で、CA証明書(*.<domain>.comノードではなく親ノード)を選択し、「エクスポート」をクリックします。

      4. ファイル名とパスを入力し、「保存」をクリックします。

  3. 証明書をインポートするには、ローカルのWebLogic Server上のコマンド・プロンプトからkeytoolコマンドを実行します。たとえば、Windowsでは、<WLS path>\<JDK path>\binからkeytool -importcert -alias -<file> -trustcacerts -keystoreを実行します。
  4. WebLogic Serverを再起動します。

ADF Webサービス・データ・コントロールの使用時の認証オプション

前の項では、Webサービスに対する認証のメカニズムとしてユーザー名とパスワードを使用しました。WSDC作成ウィザードに用意されているエンドポイント認証の詳細は、いつでも変更できます。

  1. エンドポイント認証の詳細を変更する手順:
    1. 「データ・コントロール」ペインで、WSDC (SalesPartyWSDCなど)を右クリックし、「Webサービス接続の編集...」を選択します。
    2. 「Webサービス接続の編集」ダイアログで、「ポート名」(SalesPartyServiceSoapHttpPortなど)を選択し、「エンドポイントURL」「ユーザー名」または「パスワード」に必要な変更を行います。
  2. オプションで、Oracle WSM WS-Securityクライアント・ポリシーをアタッチします。これは、SAMLクライアント・ポリシーをアタッチするときに役に立ちます。
    SAMLクライアント・ポリシーをアタッチする場合、次の作業を忘れずに実行してください。これら2つの要件が満たされたら、このアプリケーションをJCS - SaaS Extension (「Oracle Java Cloud Service - SaaS Extensionへのアプリケーションの個別デプロイ」を参照)にデプロイし、SalesParty Webサービスを起動することにより、このアプリケーションをテストできます。また、ステップ1に従い、パスワードを削除することもできます。この方法により、実際にSAMLを使用して起動していることを確認できます。
    1. 「データ・コントロール」ペインで、WSDC (SalesPartyWSDCなど)を右クリックし、「Webサービス・セキュリティの定義...」を選択します。
    2. Oracle WSMポリシーのリストから、SAMLクライアント・ポリシー(oracle/wss_saml_token_bearer_over_ssl_client_policyなど)を選択し、「保存」をクリックします。

ADF Webサービス・データ・コントロールの制限

ADF Webサービス・データ・コントロールでは、Oracle Sales Cloud SOAP Webサービスから返されたデータをOracle ADF Webページに迅速に取り込むことができます。ただし、このような簡易性には、Webサービス・レスポンスから返されたデータをWebページに表示する前に変換する機能がないというトレードオフがあります。

Webサービス・レスポンスの大部分から返されるデータ構造に固有の複雑さのため、このトレードオフにより、ADFアプリケーションでADF Webサービス・データ・コントロールを使用してWebサービスと統合できる事例が制限されます。

一般的なガイドラインまたはベスト・プラクティスとして、Webサービス・データ・コントロールを使用して単純なデータセットの問合せのみを行うようにしてください。基本的なトランザクション管理以上の作業が要求されるデータ編集や、ネストされた複雑な構造で構成されるレスポンス・ペイロードの操作を含む他の操作は、Webサービス・データ・コントロールを使用して実行しないでください。Webサービス・レスポンスの周辺で構築され、ユーザー・インタフェースで最も効率的にレンダリングできるようデータを変換するデータ・コントロールをJavaファサードから作成することにより、これらのパターンに最適に対処できます。