企業はWebサービスを利用することで、元のアプリケーションのプラットフォームや言語に関係なく、ビジネス機能を公開できます。ビジネス機能を公開するには、ビジネス機能を抽象化して、その他のアプリケーションが認識および使用できる標準XML構成要素からなるメッセージを作成します。Oracle Application Development Framework(Oracle ADF)は、Webサービスを含む各種のビジネス・サービスまたはデータ・サービスへのアクセスに使用できるアクセス・レイヤーを提供します。
Oracle ADFを使用して開発されたアプリケーションでWebサービスを使用するためのもっとも一般的な方法は、外部Webサービス向けのデータ・コントロールを作成することです。その際の一般的な理由は、アプリケーション内で開発すると時間がかかると思われる機能がWebサービスとしてすぐに利用できる場合に、これを追加するためです。
この項では、統合サーバーにデプロイしたWSDLを使用して、データ・コントロールを作成します。前述のシナリオと同様にアプリケーションは元のJavaコードを含まず、デプロイされたWSDLからデータ・コントロールを作成します。いったんデータ・コントロールを作成したら、すべてのADFクライアント・アプリケーションでこれを使用できます。
-
Applicationsウィンドウでアプリケーション名の右側にある下矢印をクリックし、メニューから「New」→「Project」を選択します。
-
New Galleryで「Web Project」を選択して、「OK」をクリックします。
-
Create Web Projectウィザードで、プロジェクトにWebClientという名前をつけます。「Next」をクリックし、もう一度「Next」をクリックします。
-
Page Flow Technologyステップで「JavaServer Faces (JSF)」を選択し、「Next」をクリックします。
-
Tag Librariesで、Available LibrariesからSelected Librariesに「ADF Faces Components 11」を移動します。JSF Core 2.1とJSF HTML 2.1が自動的に追加されることを確認します。
-
「Next」をクリックします。
-
「Next」、「Finish」の順にクリックします。
-
Applicationsウィンドウで「WebClient」ノードを右クリックし、コンテキスト・メニューから「New」→「From Gallery」を選択します。
-
New GalleryのBusiness Tierカテゴリから「Web Services」ノードを選択し、Itemsリストから「Web Service Data Control (SOAP/REST)」を選択し、「OK」をクリックします。
-
Create Web Service Data Controlウィザードの最初のステップで、データ・コントロールにMyCompanyDCという名前をつけて、先ほどコピーしたWSDLのURLを貼り付けます。
http://localhost:7101/WebService-Annotation-context-root/MyCompanyPort?WSDL -
[Tab]キーを押すと、ウィザードによってWebサービスからServiceフィールドが入力されます。
-
「Next」をクリックします。
-
Data Control Operationsページで、「getDeptInfo」メソッドをSelectedリストに移動します。
-
「Next」、「Finish」の順にクリックします。
Applicationsウィンドウは、次のように表示されます。
-
「」Save Allをクリックして作業内容を保存します。
-
Applicationsウィンドウで「Data Control」アコーディオンを開き、先ほど作成したMyCompanyDCデータ・コントロールを表示します。表示されない場合、再ロードの青い矢印をクリックしてデータ・コントロールを表示します。
ここまでで、JSFページを作成し、データ・コントロールを使用する準備が整いました。
この項では、Webサービス・プロキシを起動するクライアント・クラスを更新し、結果をメッセージ・ウィンドウに返すようにします。
-
WebClientプロジェクトから「New Gallery」→「From Gallery」を起動します。
-
「Web Tier」ノードを開き、「JSF / Facelets」サブノードを選択します。Items列で「Page」を選択し、「OK」をクリックします。
-
ページにDept_Emp.jsfという名前をつけ、Document Typeに「Facelets」を指定します。Page Layoutタブで「Copy Quikc Start Layout」を選択し、Categoriesで「Three Column Layout」を選択して「OK」をクリックします。
ページ・エディタ内にページが開きます。
次の数手順で、メソッドにデータ・コントロールを追加します。このページはパラメータを受け入れ、Webサービスへの呼出しを実行し、マスター・ディテール形式で結果を返します。 -
Data Controlsパネルで、「MyCompanyDC」データ・コントロールを開き、「getDeptInfo(Integer)」メソッドを選択します。
-
「getDeptInfo(Integer)」メソッドをドラッグして、ページのfirstファセットにドロップします。ドロップすると、メニューが表示されます。「ADF Parameter Form」を選択します。
-
Create Formダイアログで、「OK」をクリックしてデフォルト値を受け入れます。
-
Data Controlsパネルで「MyCompanyDC」→「getDeptInfo(Integer)」→「Return」の順に開き、「employees」を選択します。
-
「employees」をドラッグしてsecondファセット(firstファセットの右隣)にドロップします。動的メニューから「Master-Details」→「ADF Master Form, Detail Table」を選択します。
-
「」Save Allをクリックして作業内容を保存します。
-
endファセットを右クリックして、コンテキスト・メニューから「Delete」を選択します。
-
このページのStructureウィンドウでsecondファセットを開きます。secondファセット内で「af:panelGridLayout」→「af:gridRow」→「af:gridCell」→「af:panelGroupLayout」→「af:panelHeader - employees」の順に開きます。「af:table - t1」コンポーネントを右クリックし、コンテキスト・メニューから「Surround With」を選択します。
-
Surround Withウィンドウで「Panel Collection」を選択し、「OK」をクリックします。
-
「panelCollection」を開き、「af:table - t1」コンポーネントを選択します。Propertiesウィンドウで、Column Selectionプロパティを「single」に設定します。
-
すべての作業内容を保存します。
-
ページ内を右クリックして、コンテキスト・メニューから「Run」を選択します。
-
デフォルトのブラウザにページがロードされます。
C -
パラメータ・フィールドに部門番号として30を入力し、「getDeptInfo」ボタンをクリックします。
-
部門情報と関連従業員が取得され、表示されます。
まとめ:
- アノテーション付きPOJO Webサービスの作成
- POJOの作成と、JDeveloperを使用したWebサービスへの宣言的なアノテーションの追加
- 既存のWSDLドキュメントを使用したWebサービスの構築
- Enterprise Java Beanを使用したアノテーション付きWebサービスの構築
- Javaプログラムでの使用を可能にするための、既存Webサービスに対するプロキシ・クラスの作成
- 既存Webサービスに基づくADFデータ・コントロールの作成
- Oracle Application Development FrameworkによるFusion Webアプリケーションの開発
- ADFモデル・レイヤーを使用したWebサービスの公開
- Oracle JDeveloperによるアプリケーションの開発