| Oracle WebCenter Framework チュートリアル 10g(10.1.3.2.0) E05043-01 |
|
このレッスンでは、2つのポートレットをページに追加し、一方のポートレットによってもう一方のポートレットのコンテンツが制御されるように構成する方法を学びます。ポートレット間の通信を例示するために、Parameter Formポートレット(サンプルのWSRP 2.0ポートレットの1つ)およびOmniPortletのインスタンス(Oracle PDKポートレット)を使用します。どちらのポートレットも、第3章「最初のポートレットの構築およびテスト」でインストールしたPreconfigured OC4Jを介して使用可能です。
図6-1に、このレッスンを終えた時点での(MyWeather.jspxという名前の)ページの外観を示します。
次の手順で、2つのポートレット間の通信を行います。
このレッスンで使用するポートレットはどちらも、(第3章の「手順2: 接続の設定」でインストールおよび初期化した) WebCenter Preconfigured OC4Jを介して使用可能です。このOC4Jインスタンスがもう実行されていない場合は、このレッスンを開始する前に、JDeveloperツールバーの一番右にある「WebCenter Preconfigured OC4Jの起動」をクリックします。
ポートレットをページに追加する前に、ポートレットのプロデューサをWebCenterアプリケーションに登録する必要があります。このレッスンでは、次のポートレットのプロデューサを登録する必要があります。
まずは、Parameter Formポートレットから開始します。
http://localhost:6688/portletapp/info
プロデューサが稼働中の場合は、WSRPプロデューサ・テスト・ページに2つのWSRPプロデューサ登録URL(WSDLドキュメント)が表示されます。このWebCenterアプリケーションでは、WSRP v2 WSDLのURLを使用します。
http://localhost:6688/portletapp/portlets/wsrp2?WSDL
次に、プロデューサをアプリケーションに登録します。
SampleWSRPPortletsProducerを入力します。
WebCenter Preconfigured OC4Jを介してParameter Formポートレットを生成するには、次のURLを入力します。
http://localhost:6688/portletapp/portlets/wsrp2?WSDL
このチュートリアルでは、URL内にlocalhostを使用すると、Preconfigured OC4Jがインストールされているローカル・コンピュータを参照できることを前提としています。(そうでない場合は、localhostをご使用のコンピュータのIPアドレスに置き換えてください。)
ローカルのPreconfigured OC4Jを使用しているため、プロキシ情報は必要ありません。「プロキシを使用」オプションが選択されていないことを確認してください。
次のメッセージが表示されます(図6-2)。
アプリケーション・ナビゲータで、「Portlet Producers」セクションの下に、新しいプロデューサが表示されます(図6-3)。
「表示」メニューからコンポーネント・パレットを開き、そのドロップダウン・リストを開きます。このリストから、「SampleWSRPPortletsProducer」を見つけて選択します。複数のポートレットが選択可能になっています。その中にParameter Formポートレットがあります。このレッスンでは、このポートレットを使用します。(コンポーネント・パレットに何も表示されない場合は、「設計」ビューでMyPage.jspxなどのJava Server Facesページを表示してみてください。これによって、すべてのポートレットが表示されます。)
Parameter Formポートレットについては、後で再び使用します。まずは、OmniPortletプロデューサを登録する必要があります。
http://localhost:6688/portalTools/omniPortlet/providers/omniPortlet
プロデューサが使用可能な場合は、OmniPortleのプロデューサ・テスト・ページが表示されます。
次に、OmniPortletプロデューサを登録します。このチュートリアルでは、今までにWSRPプロデューサのみを登録しました。OmniPortletはOracle PDKポートレットなので、このプロデューサの登録には別のウィザードを使用します。
OmniPortletProducerを入力します。
WebCenter Preconfigured OC4Jを介してOmniPortletを生成するには、次のURLを入力します。
http://localhost:6688/portalTools/omniPortlet/providers/omniPortlet
このチュートリアルでは、URL内にlocalhostを使用すると、Preconfigured OC4Jがインストールされているローカル・コンピュータを参照できることを前提としています。(そうでない場合は、localhostをご使用のコンピュータのIPアドレスに置き換えてください。)
「プロキシを使用」オプションが選択されていないことを確認してください。
次のメッセージが表示されます(図6-4)。
アプリケーション・ナビゲータで、「Portlet Producers」セクションの下に、両方のプロデューサが表示されます(図6-5)。
複数のポートレットが選択可能になっています。その中にOmniPortletがあります。このレッスンでは、このポートレットを使用します。
両方のプロデューサがチュートリアル・アプリケーションに登録されたので、それらのポートレットをページにドロップできるようになります。
この手順では、Parameter Formポートレットをページ上に配置し、パブリック・ポートレット・パラメータを持つポートレットがJDeveloperでどのように処理されるかを確認します。次にページを実行し、ポートレットのカスタマイズを介して、ユーザーにZIPコードの入力を促すポートレットを作成します。このレッスンの以降の部分で、パラメータとしてのZIPコードをOmniPortletに渡す方法を学びます。OmniPortletでは、このパラメータを使用して気象ポートレットのコンテンツが制御されます。
まずは、MyWeather.jspxという名前の新しいページを作成します。このページを使用して、ポートレット間の通信について学びます。
MyWeatherを入力します。
ADF Faces Components 10_1_3_2_0
ADF Faces HTML 10_1_3_2_0
ADF Portlet Components 10_1_3_2_0
Customizable Components Core 10_1_3_2
JSF Core 1.0
JSF HTML 1.0
ビジュアル・エディタにMyWeather.jspxが開かれ(図6-6)、ポートレットの追加を開始できるようになります。
panelCustomizableコンポーネントをページに追加します。このコンポーネントを使用して、両方のポートレット(Parameter FormポートレットとOmniPortlet)を格納し、水平または垂直レイアウトを指定します。
「h:form」タグの上にドラッグします。ページの一番上に、panelCustomizableコンポーネントが表示されます(図6-8)。
panelCustomizableコンポーネントは、ページのh:form内に配置する必要があります。構造ウィンドウ内を調べて、フレームがフォームの中に配置されていることを確認します。ポートレットにはカスタマイズ機能(ページ上でポートレットの最大化/最小化や位置変更を行う機能)が自動的に備わっているため、showDetailFrameを追加する必要はないことを思い出してください。
「cust:panelCustomizable」コンポーネントの上にドラッグ・アンド・ドロップします。ビジュアル・エディタは、図6-9のように表示されます。
ページを実行する前に、基礎となるページ定義を調べて、このようなビルトイン・パラメータを備えたポートレットにJDeveloperがどのように応答するかを確認します。
アプリケーション・ナビゲータで、「MyWeather.jspx」を右クリックし、「ページ定義に移動」を選択します。ページ定義がまだ存在していない場合は、「はい」をクリックします。
構造ウィンドウ(図6-10)には、Parameter Formの各ポートレット・パラメータに対して1つずつエントリが表示されます(ora_wsrp_navigparam_Parameter1、ora_wsrp_navigparam_Parameter2およびora_wsrp_navigparam_Parameter3)。また、3つのページ変数エントリと、それに対応する名前および接頭辞<portletname_n_>も表示されます(この場合はParameterFormPortlet1_1_)。
ポートレットをページ上にドロップすると、JDeveloperによって、ポートレットがパブリック・ポートレット・パラメータを持つかどうかが確認され、持つ場合は、対応する数のページ変数が自動的に追加されてポートレット・パラメータにマップされます。
プロパティ・インスペクタを使用して、マッピングの1つを調べます。たとえば、ora_wsrp_navigparam_Parameter1が、ParameterFormPortlet1_1_ora_wsrp_navigparam_Parameter1という名前のページ変数にマップされています(図6-11)。
今度は、ページを実行して、デフォルトのParameter Formポートレットがどのように表示されるかを確認します。
ブラウザに、デフォルトのParameter Formポートレットが表示されます(図6-12)。
ポートレットの最初のバージョンではデフォルト・テキストが表示されることがわかります。次の手順では、ユーザーにUS ZIPコードの入力を促すようにポートレットをカスタマイズします。このレッスンの目的は、(ZIPコードなどの)パラメータ値を受け入れて別のポートレットに渡すようにこのポートレットを設定することなので、忘れないでください。
この手順では、タイトルおよびプロンプトを変更することにより、Parameter Formポートレットをカスタマイズします。また、不要なパラメータを非表示にします。Parameter Formポートレットには3つのパラメータが用意されていますが、このチュートリアルで必要なのは、ポートレット間で受渡しされるパラメータを示すための1つのみです。
Enter a ZIP code here:に変更します。
ZIP Code:を入力します。
「カスタマイズ」オプションは、図6-13のように表示されます。
ポートレットは、ブラウザでは図6-14のように表示されます。
次の手順に進む前に、これまでに行った内容を振り返ってみます。最初に、MyWeather.jspxという名前のページを作成し、1つのParameter Formポートレットを追加しました。次に、ポートレットのカスタマイズを介して、US ZIPコードを受け入れるようにパラメータの1つ(ora_wsrp_navigparam_Parameter1)を設定しました。JDeveloperによって、この特定のパラメータがParameterFormPortlet1_1_ora_wsrp_navigparam_Parameter1という名前のページ変数に自動的にマップされました。後で、この変数を使用して、ZIPコードを別のポートレットに渡します。
しかしまずは、2つ目のポートレットOmniPortletを追加します。
この手順では、Parameter Formポートレットの下にOmniPortletを配置します。
「cust:PanelCustomizable」の上にドラッグします。ビジュアル・エディタは、図6-15のように表示されます。
構造ウィンドウは、図6-16のように表示されます。
構造ウィンドウ(図6-17)に、OmniPortletの新しいエントリが表示されます。このポートレットには5つのポートレット・パラメータ(Param1〜Param5)があります。これらもすでに、ページ変数(OmniPortlet1_1_Param1〜OmniPortlet1_1_Param5)に自動的にマップされています。
「手順6: 両ポートレットの構成」で、これらのポートレット・パラメータを使用してポートレット間通信を構成します。しかしまずは、OmniPortletポートレットの外観を確認します。
あるいは、埋込みOC4Jサーバーのログ・ウィンドウで、赤い四角形の「終了」アイコンをクリックします。
ブラウザで、Parameter Formポートレットの下にOmniPortletが表示されます(図6-18)。
ポートレットの初期バージョンは空白であることがわかります。次の手順では、OmniPortletを使用して、Webサービスに基づいた気象ポートレットを構築します。
OmniPortletは最も用途の広いポートレットの1つであり、様々なレイアウトを使用して様々なデータソースからデータを公開できます。この手順では、Webサービスに基づいた気象ポートレットを構築します。
MyWeather.jspxを表示します。アプリケーション・ナビゲータで、「MyWeather.jspx」を右クリックし、「実行」を選択します。
このチュートリアルの完了後、スプレットシート(文字区切りの値)やXML、既存のWebページからのアプリケーション・データといった他のデータソースをOmniPortletで使用する方法を学ぶこともできます。これらのオプションについてはすべて、『Oracle WebCenter Framework開発者ガイド』で説明されています。
http://webservices.oracle.com/WeatherWS/WeatherWS?WSDL
このWebサービスは1つのメソッド(WeatherWS.giveMeSomeWeatherInfo)を持ち、1つのパラメータ(param0)を受け入れます。param0を介して有効なUS ZIPコードを渡すと、Webサービスは、指定された地域の気象情報を返します。
注意: このWebサービスは、実際の気象情報を返しません。デモ目的でのみ使用できます。
「param0」というラベルの付いたパラメータがページに表示されます。
##Param1##を入力します。これによって、WebサービスがOmniportletパラメータParam1からの値を受け入れるように設定されます。後で、ポートレット・パラメータParam1を、ParameterFormPortlet1_1_ora_wsrp_navigparam_Parameter1という名前のページ変数にマップします(「手順6: 両ポートレットの構成」を参照)。
94065を入力します。これによって、WebサービスがデフォルトでZIPコード94065(カリフォルニア州レッドウッド市)の気象情報を返すように設定されます。
| 設定 | 値 |
|---|---|
|
タイトル |
ポートレットのタイトルとして |
|
ヘッダー・テキスト |
ポートレット・ヘッダーにParam1(現在のZIPコード)の現在値を表示します。次のように入力します。 |
| 名前 | 列ラベル | 列 | 表示形式 |
|---|---|---|---|
|
Field1 |
Day |
dayOfWeek |
テキスト |
|
Field2 |
Hi |
hiTemp |
テキスト |
|
Field3 |
Lo |
lowTemp |
テキスト |
|
Field4 |
Sky |
sky |
テキスト |
|
Field5 |
(空白) |
img |
イメージ |
Omniportletでは、ZIPコードが94065であるカリフォルニア州レッドウッド市の気象予報が表示されます。このデータを提供するWebサービスは、有効なUI ZIPコードが渡されれば、他の地域の気象情報を返すこともできます。次の手順では、この2つのポートレットをリンクし、最初のポートレット(Parameter Formポートレット)にOmniPortletのコンテンツを制御させる方法を学びます。
この手順では、2つのポートレットのポートレット間通信を有効にします。
ora_wsrp_navigparam_Parameter1、ora_wsrp_navigparam_Parameter2およびora_wsrp_navigparam_Parameter3)があります。
Param1〜Param5)があります。
各ポートレットでは複数のパラメータをサポートしていますが、ここでは、ポートレット間通信を例示するため、各ポートレットから1つのパラメータしか使用しません。
ora_wsrp_navigparam_Parameter1: このパラメータを介して、Parameter FormポートレットがZIPコードを受け入れるように設定しました(「手順3: Parameter Formポートレットのカスタマイズ」)。
Param1: このパラメータを介して、OmniPortletがZIPコードを受け入れるように構成しました(「手順5: Webサービスを使用するOmniPortletの構築」)。
次の手順では、この2つのパラメータを同じページ変数にマップします。その際に、2つのポートレット間のパラメータの受渡しを促進します。現時点でora_wsrp_navigparam_Parameter1はページ変数ParameterFormPortlet1_1_ora_wsrp_navigparam_Parameter1にマップされているので、今度はParam1もこのページ変数にマップします。
「Param1」は、「MyWeatherPageDef¥executables¥OmniPortlet1_1¥parameters」の下にあります。
今度は、ページを実行して、ポートレットがともに動作することを確認します。
これから、MyWeather.jspxのポートレットがともに動作することを確認します。
コンパイル・エラーがなければ、ページが新しいブラウザ・ウィンドウ内に開き、レッドウッド市地域(ZIPコード94065)の気象予報が表示されます。
10001を入力します。これはニューヨークのZIPコードです。
気象予報ポートレットが変更され、(図6-21のような)ニューヨークの気象情報が表示されます。
おめでとうございます。これで、このレッスンは終わりです。2つのポートレットが互いに通信できるようになりました。
次のレッスンでは、WebCenterアプリケーションのファイル・システム・コンテンツを公開する方法を学びます。
|
![]() Copyright © 2007 Oracle Corporation. All Rights Reserved. |
|