ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド
11g リリース2(11.1.2.3.0)
B69399-02
  目次へ移動
目次

前
 
次
 

15 ADFモデル・レイヤーを使用したURLサービスの公開

この章では、ADFモデル・レイヤーを使用してURLサービスを公開する方法と、データバインドされたユーザー・インタフェースの設計に使用される「データ・コントロール」パネルでURLサービスがどのように表示されるかについて説明します。

この章の内容は次のとおりです。

15.1 ADFモデルでのURLサービスの使用について

問合せをポストする単純なURLをURLサービスにして、そのURLをADFフォームとして公開できます。たとえば、会社の従業員データにアクセスできるURLサービスがあるとします。このデータは、例15-1に示すようなURLを使用して取得できます。

例15-1 URLサービスにアクセスするサンプルURL

http://example.com/getEmployee?empId=20+deptId=10

従業員データにアクセスするこの単純なURLを、メソッド(getEmployee)と2つのパラメータ(empIdおよびdeptId)を持つADFデータ・コントロールにして、フォームとしてページにドロップできます。

また、URLサービスでは、Representational State Transfer (REST)アクションを利用できます。RESTサービスは、複雑なSOAPプロトコルではなく、単純なHTTP URLを使用してアクセスできるWebサービスです。HTTPの各アクション(GETPUTPOSTDELETE)は、サービスの実装時に、データに対するアクセスと操作を行うサービス操作にマップされます。応答データはデリミタ区切り値とXMLフォーマットで返すことができ、XSDのURLを指定すると、PUTおよびPOSTアクションの入力フォーマットを定義できます。

15.1.1 URLサービスのユースケースと例

RESTアーキテクチャでは、WebサービスがHTTPリソースとして表され、Webサービスのメソッドと操作がHTTP URLからアクセスできるサーバー上のリソースのように認識されるため、Webサービス起動が簡単になります。

たとえば、あるWebサービスにgetEmployee(int EmpID)というメソッドがあるとします。RESTアーキテクチャを使用すると、これをhttp://mywebservice.com/myService/getEmployee?EmpID=20とできます。プレーンなHTTP URLとして表すと、このサービスにアクセスするデータバインドされたページを、URLサービス・データ・コントロールを使用して簡単に作成できます。

15.1.2 URLサービスの追加機能

URLサービスを使用する前に、他のデータ・アクセス機能を理解しておくと役立つ場合があります。次に、関連する他の機能へのリンクを示します。

15.2 ADFデータ・コントロールを使用したURLサービスの公開

URLサービス・データ・コントロールを使用すると、指定されたURLからデータ・ストリームにアクセスし、これを使用できます。URLサービス・データ・コントロールは、複数の操作を表すことができます。たとえば、特定のURLサービスのGET操作とPUT操作を同じデータ・コントロールで表すことができます。

15.2.1 URL接続の作成方法

URL接続を作成するには、「URL接続の作成」ダイアログを使用して、名前、およびURLエンドポイントへのアクセスに必要な接続の詳細を指定します。

作業を始める前に、次のようにします。

ADFアプリケーションでのURLサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、15.1項「ADFモデルでのURLサービスの使用について」を参照してください。

また、他のURLサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「URLサービスの追加機能」を参照してください。

データ・コントロールからアクセスされるURLサービスへのアクセス権が必要です。また、JDeveloperを起動する必要があります。

URL接続を作成するには:

  1. メイン・メニューから「ファイル」→「新規」の順に選択します。

  2. 「新規ギャラリ」で「一般」を開き、「接続」「URL接続」の順に選択して、「OK」をクリックします。

  3. 「URL接続の作成」ダイアログで、接続を作成する場所を選択します。

    URL接続をアプリケーション内でのみ使用できるようにする場合は、「アプリケーション・リソース」を選択します。他のアプリケーションもリソース・パレットからURL接続を使用できるようにする場合は、「リソース・パレット」を選択します。

  4. 接続の名前を入力します。

  5. 「URLエンドポイント」フィールドに、目的のデータ・ストリームのURLを入力します。

    通常、これにはホストとポートのみを含めます。URLパラメータは含めないでください(例: http://service.example.com:7101/)。

  6. 「認証タイプ」ドロップダウンから認証レベルを選択します。

    デフォルトの認証タイプは「なし」で、認証は無効になります。セキュリティが必要な場合は、「ダイジェスト」を使用します。この方法では、パスワードはユーザー・パスワードのMD5ダイジェストとしてネットワーク上を送信され、ネットワーク・トラフィックを傍受しても判別できません。「基本」認証は、主にネットワーク上でのサービス・アクセスに高度なセキュリティを必要としない場合にのみ役立ちます。

  7. ダイジェスト認証または基本認証を選択した場合は、Webサイトへのアクセスに必要なユーザー名とパスワードを指定します。

  8. URLがWebサイト全体の保護領域に関連付けられている場合は、認証レルムを入力します。

  9. 名前とエンドポイントを入力したら、「接続のテスト」をクリックして、URLコネクションが有効であることを検証します。

  10. 「OK」をクリックして接続を作成します。

15.2.2 URLサービス・データ・コントロールの作成方法

URLサービス・データ・コントロールは、「新規ギャラリ」にある、URLサービス・データ・コントロールの作成ウィザードを使用して作成できます。URLサービス・データ・コントロールを作成するときには、ウィザードを使用して操作を1つずつ作成します。

作業を始める前に、次のようにします。

ADFアプリケーションでのURLサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、15.1項「ADFモデルでのURLサービスの使用について」を参照してください。

また、他のURLサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「URLサービスの追加機能」を参照してください。

データ・コントロールからアクセスされるURLサービスへのアクセス権が必要です。

15.2.1項「URL接続の作成方法」の説明に従って、使用するURL接続を作成しておく必要があります。

JDeveloperを起動し、URLサービス・データ・コントロールを追加するアプリケーションを開く必要があります。

URLサービス・データ・コントロールを作成するには:

  1. アプリケーション・ナビゲータで、データ・モデル・プロジェクトを右クリックして「新規」を選択します。

  2. 「新規ギャラリ」で「ビジネス層」を開き、「データ・コントロール」を選択して「URLサービス・データ・コントロール」を選択し、「OK」をクリックします。


    注意:

    「新規ギャラリ」に「URLサービス・データ・コントロール」の項目が表示されない場合は、「すべての機能」タブをクリックしてください。


  3. URLサービス・データ・コントロールの作成ウィザード(「データソース」ページ)で、データ・コントロールの名前を指定します。

    各データ・コントロールはURLサービスの1つの操作を表すため、サービスと操作の両方を表した名前を付ける必要があります。たとえば、EmployeeData URLサービスのGET操作のデータ・コントロールには、emp_getなどの名前を付けます。

  4. データ・コントロールで使用するURL接続を選択します。

    • まだURL接続を作成していない場合は、「接続」ドロップダウンから「新規接続の作成」を選択します。接続のページでは、このデータ・コントロールの接続の詳細とアクション(HTTPメソッド)を指定します。

    • すでにURL接続を作成している場合は、「接続」ドロップダウンから、使用する接続を選択します。

  5. 「HTTPメソッド」ドロップダウン・リストから、このデータ・コントロールのアクションを選択します。

  6. オプションで、「HTTPヘッダー・パラメータを含める」チェック・ボックスを選択します。詳細は、15.2.4項「URLサービス・データ・コントロールのカスタム・ヘッダー・パラメータを組み込む方法」を参照してください。

  7. URLサービスのソース(たとえばservicepath/servicename)を入力して、「次へ」をクリックします。

    この操作にパラメータが必要な場合は、?symbol=##ParamName##形式で指定できます(たとえばservicepath/servicename?symbol=##id##)。また、パラメータを使用してソース・パスを動的に入力することもできます(たとえばservicepath/##servicename##?symbol=##id##)。

  8. 「パラメータ」ページで、指定したパラメータのデフォルト値を指定して、「次へ」をクリックします。

    PUTおよびPOST操作の場合は、入力フォーマットを定義したXMLスキーマ定義をポイントするURLも指定する必要があります。

  9. 「データ・フォーマット」ページで、データソースのデータ・フォーマットを選択し、関連するプロパティを設定して、「次へ」をクリックします。

    XMLフォーマット(XSDおよびXSLのURLを指定)とデリミタ区切り値(デリミタ、テキスト修飾子およびデータのエンコーディングを指定)のいずれかを選択できます。

  10. 「終了」ページで「URL接続のテスト」をクリックすると、URLデータ接続が有効であることを検証できます。「終了」をクリックします。

  11. データ・コントロールに含める他のすべての操作について、前述の手順を繰り返します。同じデータ・コントロールに追加の操作を含めるには、ウィザードの「データソース」ページの「名前」フィールドに、最初の操作についてウィザードを実行したときにデータ・コントロールに使用した名前と同じ名前を入力します。

15.2.3 URLサービス・データ・コントロールの作成時の処理内容

URLサービス・データ・コントロールを作成すると、DataControls.dcxの概要エディタに各操作のメソッド・ノードが移入されます。これらのメソッド・ノードには、戻りサブノードがある場合があり、戻りサブノードには、コレクション、スカラー値および属性のサブノードが含まれる場合があります。

「HTTPヘッダー・パラメータを含める」チェック・ボックスを選択した操作については、メソッド・ノードにjava.util.Map型のHttpHeaderという入力パラメータが指定されます。

複合データ型のパラメータを取る操作の場合は、アクセッサの戻りノードも表示されます。

URLサービス・データ・コントロールに対して表示される全ノードのリストと使用方法の詳細は、表15-1を参照してください。

15.2.4 URLサービス・データ・コントロールのカスタム・ヘッダー・パラメータを組み込む方法

URLサービス・データ・コントロールを使用する場合、HTTPリクエストの起動時にHTTPヘッダーにカスタム・パラメータを追加する場合があります。このようなパラメータは、セキュリティや通知など、様々な目的で役立ちます。

作業を始める前に、次のようにします。

ADFアプリケーションでのURLサービス・データ・コントロールの使用方法に関する知識があると、役立つ場合があります。詳細は、15.1項「ADFモデルでのURLサービスの使用について」を参照してください。

また、他のURLサービス機能を使用して追加できる機能についても理解しておくと役立ちます。詳細は、15.1.2項「URLサービスの追加機能」を参照してください。

次のタスクを完了する必要があります。

URLサービスにカスタム・ヘッダーを渡すには:

  1. マネージドBeanに、ヘッダー・パラメータの名前と値を指定する、java.util.Map型のBeanプロパティを作成します。マップは、<String, List<String>>または<String,String>型である必要があります。

    このようなマネージドBeanの例は、例15-2を参照してください。

  2. 「データ・コントロール」パネルで、カスタム・ヘッダー・パラメータを含むメソッドをWebページにドラッグし、「ADFボタン」としてドロップします。

  3. 「アクション・バインディングの編集」ダイアログで、次の手順を実行してボタンとマネージドBean間のバインディングを作成します。

    1. 「データ・コレクション」ツリーで、HTTPヘッダー・パラメータを含むメソッドを選択します。

    2. 「パラメータ」表で、パラメータの「値」セルをクリックし、ドロップダウン・ボタンをクリックして「EL式ビルダーの表示」を選択します。

    3. 「変数」ダイアログで、式を手動で入力するか、「変数」ツリーを移動して、バインドするHTTPパラメータを表すマネージドBeanフィールドを選択します。

      たとえば、例15-2に示すhttpHeadersMapプロパティにバインドするには、「ADFマネージドBean」ノードを開きます。さらに、Beanのスコープのノードを開いて、adfc-config.xmlファイルで指定されているBean名(クラス名と同じであるとは限りません)のノードを開き、「httpHeadersMap」を選択します。

実行時に、データ・コントロールはマップ(存在する場合)からエントリを取得して、HTTPヘッダーとしてリクエストに追加します。

例15-2 URLサービス・データ・コントロールのカスタム・パラメータを含むマネージドBean

package view;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class BackingBean {    
    private Map<String,String> httpHeadersMap = new HashMap<String,String>();

      public BackingBean() {
          List<String> headersList = new ArrayList<String>();
          headersList.add("OurCompany");
          httpHeadersMap.put("TenantID","OurCompany"); 
      }
      public void setHttpHeadersMap(Map<String,String> httpHeadersMap) {
          this.httpHeadersMap = httpHeadersMap;
      }

      public Map<String,String> getHttpHeadersMap() {
          return httpHeadersMap;
      }
}

15.2.5 URLサービス・データ・コントロールの主キーについて

URLサービスにデータ・コントロールを作成すると、そのデータ・コントロールは公開された任意のコレクションに対する主キー操作をサポートします。この機能は、Webサービス・データ・コントロールの対応する機能と同じです。詳細は、14.2.5項「Webサービス・データ・コントロールの主キーについて」を参照してください。

15.2.6 URLサービス・データ・コントロールについて

URLサービス・データ・コントロールは更新不可能であるため、「データ・コントロール」パネルの一部のオブジェクトには制限があります。たとえば、「操作」ノードの下の組込み操作で使用可能になっているのは、取得とナビゲーションのみです。また、URLサービス・データ・コントロールのパラメータ・オブジェクトは、ユーザーがURLに渡すパラメータです。詳細は、表15-1を参照してください。

15.3 URLサービス・データ・コントロールの使用

他の種類のデータ・コントロールと同様に、「データ・コントロール」パネルから項目をドラッグし、それを特定のUIコンポーネントとしてページ上にドロップすることで、データバインドされたユーザー・インタフェースを設計できます。詳細は、13.4.1項「データ・コントロール」パネルの使用方法」を参照してください。

「データ・コントロール」パネルでは、各データ・コントロール・オブジェクトがアイコンで表されます。表15-1は、各アイコンが表すもの、「データ・コントロール」パネルの階層内で表示される場所、およびそのアイコンを使用して作成できるコンポーネントを示しています。

表15-1 URLサービス・データ・コントロールの「データ・コントロール」パネルのアイコンおよびオブジェクト階層

アイコン 名前 説明 作成できるコンポーネント

データ・コントロール・アイコン


データ・コントロール

データ・コントロールを表します。データ・コントロール自体を使用してUIコンポーネントを作成することはできませんが、そのデータ・コントロールの下に表示される子オブジェクトは使用できます。複数のデータ・コントロールが存在する可能性もあります。これらはそれぞれ、データ関数の論理グループを表しています。

一般に、任意のソース1つにつき、データ・コントロールは1つです。ただし、他のタイプのオブジェクト(アプリケーション・モジュール、Webサービスなど)に対して作成された追加のデータ・コントロールがある場合があります。

他のオブジェクトのコンテナとして機能します。なし。

メソッド・アイコン


メソッド

URLのコンテンツを取得する、loadData()操作を表します。この操作は、パラメータを受け入れ、なんらかのアクションまたはビジネス・ロジックを実行し、データまたはデータ・コレクションを戻すことができます。データ・コレクションを返す操作の場合は、その下にメソッド戻りアイコンが子として表示されます。操作にパラメータが必要な場合は、メソッドの下に必須パラメータのリストを示すフォルダが表示されます。

ボタンやリンクなどのUIのアクション。

メソッド戻りアイコン


メソッド戻り値

カスタム・メソッドによって戻されたデータ・コレクションを表します。メソッド戻りは、これを戻すメソッドの下に、子として表示されます。メソッド戻りの下に子として表示されるオブジェクトは、コレクションの属性、親コレクションに関連するコレクションを表すアクセッサ戻り、親コレクションに関連するアクションを実行するその他のメソッドおよび親コレクションで実行できる操作です。

フォーム、表、ツリーおよび範囲のナビゲーション・コンポーネント。

アクセッサ戻りアイコン。


アクセッサ戻り値

ビジネス・サービスでの操作によって返されるオブジェクトを表します。返されるオブジェクトが複合型である場合、アクセッサ・メソッドが使用されます。アクセッサ戻りは、親コレクション内の現在のオブジェクトに関係するオブジェクトです。この関係は、通常、両方のオブジェクトに共通する一意の属性に基づいています。たとえば、あるメソッドがユーザーのコレクションを戻す場合、このコレクションの子であるアクセッサ戻りは、特定のユーザーに割り当てられているサービス要求のコレクションである可能性があります。ADFでは、親および子コレクション間の関係はマスター/ディテール関係と呼ばれます。マスター/ディテール・オブジェクトの詳細は、第29章「マスター/ディテール・データの表示」を参照してください。

アクセッサの戻りは、コレクションまたは単一の複合オブジェクトです。たとえば、あるメソッドがサービス要求のコレクションを戻す場合、このメソッドの下のアクセッサ戻りの1つは、現在のサービス要求に対するサービス履歴の詳細のコレクションで、別のアクセス戻りは現在のサービス要求に割り当てられているシングル・ユーザーである可能性があります。「データ・コントロール」パネルのコンテキスト・メニューで使用できるUIコンポーネントは、アクセッサ戻りがコレクションか、単一オブジェクトかによって異なります。

アクセッサ戻りの下の子は、コレクションまたはオブジェクトの属性、他のアクセッサ戻り、コレクションまたはオブジェクトから値を戻すカスタム・メソッド、およびコレクションまたはオブジェクトに対して実行できる操作などです。

コレクションの場合: フォーム、表、ツリー、レンジ・ナビゲーションの各コンポーネント、およびマスター/ディテール・ウィジェット。

単一オブジェクトの場合: フォーム、マスター/ディテール・ウィジェットおよび選択リスト。

コンストラクタの下の単一オブジェクトの場合: 選択リストのみ。

属性アイコン


属性

オブジェクト内の個別データ要素を表します。属性は、メソッド戻りまたはアクセッサ戻りの下に子として表示されます。

ラベル、テキスト・フィールドおよび選択リストの各コンポーネント。

データ・コントロール操作アイコン


操作

親オブジェクトに対してアクションを実行する、組込みデータ・コントロール操作を表します。操作にパラメータが必要な場合は、メソッドの下に必須パラメータのリストを示すフォルダが表示されます。データ・コントロール操作は、メソッド戻りまたはアクセッサ戻りの下の「操作」ノード、およびルート・データ・コントロール・ノードの下に表示されます。特定のメソッド戻りまたはアクセッサ戻りの子である操作はその戻りオブジェクトに対してのみ作用しますが、データ・コントロール・ノードの下の操作は、データ・コントロールが表すオブジェクトすべてに作用します。

URLサービス・データ・コントロールは更新できないため、取得およびナビゲーション操作のみ可能です。

ボタンやリンクなどのUIのアクション。

パラメータ・アイコン


パラメータ

メソッドまたはその下に表示される操作によって宣言されたパラメータ値を表します。パラメータは、メソッドまたは操作の下のフォルダに表示されます。

URLサービス・データ・コントロールのパラメータは、ユーザーがURLに入れて渡したパラメータです。これらは、URLサービス・データ・コントロールが作成されたときに、loadData()メソッドへのパラメータとして表示されます。たとえば、URL http://www.example.org?id=##param##へのデータ・コントロールを作成したとします。「データ・コントロール」パネルには、paramという名前のパラメータを1つ持ったloadData()が表示されます。呼び出しが行われると、前述のURLでは、このパラメータに提供された値を使った置き換えが行われます。

ラベル、テキストおよび選択リストの各コンポーネント。