ヘッダーをスキップ
Oracle WebCenter Framework開発者ガイド
10g(10.1.3.2.0)
E05044-04
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

18 Javaポートレットの作成

この章では、Javaポートレット仕様(JSR 168)、またはOracle JDeveloperのJSR 168 Javaポートレット・ウィザードおよびJavaポートレット・ウィザードを使用するOracle Application Server Portal Developer Kit-Java(PDK-Java)に基づいて、Javaポートレットを作成する方法について説明します。この章の内容は、次のとおりです。

OTNの詳細

この章で参照される多数の例のソース・コードは、Portlet Developer's Kit(PDK)の一部として使用できます。PDKは、次のURLにあるOracle Technology Network(OTN)のPDKのページからダウンロードできます。

http://www.oracle.com/technology/products/ias/portal/pdk.html

PDK-Javaを解凍すると、例がzip形式ファイルで次の場所にあります。

../pdk/jpdk/v2/src.zip

PDK-Java用の参照JavaDocにアクセスするには、次の中からjpdk.warを抽出します。

../pdk/jpdk/v2/jpdk.ear

次に、jpdk.warを解凍します。JavaDocは、apidocフォルダにあります。

18.1 Javaポートレット作成のガイドライン

Javaポートレット仕様(JPS)またはPDK-Javaのいずれかに基づいてJavaでポートレットを作成する場合は、この項の次のガイドラインに従ってください。

18.1.1 ポートレット・モードのガイドライン

ポートレット・モードは、ランタイム・ポートレットの機能をユーザーが確認できるようにするものです。JPSではPDK-Javaで提供されていないモードをいくつか提供しており、またその逆の場合も同じです。ポートレットをJPSに従ってコーディングする場合は、portlet.xmlで、カスタム・ポートレット・モードをPDK-Javaが提供する追加のモードにマップすると宣言することも、カスタム・ポートレット・モードに提供するその他の機能を含めると宣言することもできます。たとえば、JPSポートレット用のJSR 168 Javaポートレット・ウィザードには、「印刷」というカスタム・モードがあり、これを使用してポートレットの印刷用のバージョンを提供できます。カスタム・モードの定義は、特に、ポートレットを他のベンダーのポータル実装と相互運用する場合に役立ちます。

ポートレットには次のポートレット・モードがあり、表示方法と動作がそれぞれ異なります。

18.1.1.1 共有画面モード(JPSの場合は表示モード)

ポートレットは共有画面モード(JPSでは表示モードと呼ばれます)を使用して、他のポートレットと同じページに表示されます。ポートレットといえば、ほとんどの人がこのモードを思い浮かべます。ポートレットの開発時には、ページ上でポートレットの外観に影響を与える可能性のあるすべての要素(ポートレットのコンテナ・オブジェクトや、開発したポートレットがページを共有する他のポートレットなど)について検討する必要があります。たとえば、ポートレットをHTML表のセル内に配置するとします。これでは、ポートレットが表のセル内でレンダリングできるコンテンツしか表示できなくなる可能性があります。さらに、表のセルの実際のサイズは、ユーザー設定、ブラウザの幅、およびポートレットに表示されるコンテンツの量とスタイルによって変わります。

18.1.1.1.1 ポートレットのレンダリングに関するHTMLガイドライン

プレーンHTMLは最も基本的なポートレットのレンダリング方法であり、ポートレットの開発者に大きな柔軟性を提供します。リンク、フォーム、イメージ、表など、HTMLの表のセル内に表示できるほとんどの標準的なHTMLパラダイムを使用できます。HTMLが適切に作成されていない場合は、異なる複数のブラウザで表示したときに表示の一貫性がなくなり、ページの一部が表示されないこともあります。次のルールに従ってください。

  • 標準HTMLを使用する。HTMLの正式な仕様は、W3Cにあります(詳細はhttp://www.w3.org/MarkUp/を参照)。

  • 閉じていないタグや不要なタグがないように注意する。ページはブラウザの動作の影響を受けるため、タグが正しく閉じていないとページの動作は予測不可能になります。weblint(http://www.weblint.org/)やHTML Tidy(http://www.w3.org/People/Raggett/tidy/)などのツールは、閉じていないタグや不要なタグの検出および修正に役立ちます。

  • コンテナ・オブジェクトによる制限を検討する。 ポートレットをHTML要素(表のセルなど)に格納する場合、ポートレットをそのコンテナ内で確実にレンダリングできるようにする必要があります。たとえば、ポートレットを表のセル内に配置する場合、ポートレット内でフレームを使用できません。これは表内に挿入されると、フレームが表示されないためです。

  • ポートレットのコンテンツは簡潔にする。全画面のコンテンツを取得して、小さなポートレットから公開しないでください。ポートレットのコンテンツが小さくなりすぎて、小さなモニターではポートレットが使用不能になるのみです。全画面のコンテンツは、PDK-Javaの全画面モードで最適に表示されます。

  • ポートレット内に固定幅のHTMLの表を作成しない。ユーザーのページに表示されるポートレットの列幅を事前に知る方法はありません。与えられた空間よりも広い空間がポートレットに必要な場合、特定のブラウザでは、他のポートレットとオーバーラップする可能性があります。

  • 折り返しのない長いテキスト行を避ける。固定幅の表を使用した場合と同様の結果になります。特定のブラウザでは、他のポートレットとオーバーラップする可能性があります。

  • ページ・サイズ変更時の動作をチェックする。ブラウザ・ウィンドウをサイズ変更した際のポートレットの動作をテストし、ポートレットがブラウザ・ウィンドウの様々なサイズで動作することを確認してください。

  • ブラウザのデフォルトのフォントが変更された場合の動作をチェックする。ユーザーは希望するフォント・サイズを選択でき、いつでも変更できます。ポートレットは、その変更に対応する必要があります。

使用するHTMLも、サイトの知覚されるパフォーマンスに直接影響を与えます。ユーザーは、リクエストしたページの表示にかかる時間に基づいてパフォーマンスを判断します。ブラウザには、HTMLを解釈して表示するための時間が必要です。このため、次の点を考慮してください。

  • 長く複雑なHTMLを避ける。ポートレットはページを他のポートレットと共有します。したがって、ポートレットの生成時間はページのパフォーマンス全体に大きく影響します。ポートレットが複雑なHTMLをレンダリングしたり、サード・パーティのアプリケーションなど外部リソースを待ったりする場合は、ページのレンダリングが大幅に遅くなることがあります。

18.1.1.1.2 ポートレットのレンダリングに関するCascading Style Sheetガイドライン

ページ上のそれぞれのポートレットのフォントと色は、ユーザーが選択したスタイル設定に一致する必要があります。このために、これらのスタイル選択は、各ページのCascading Style Sheet(CSS)を使用して自動的に埋め込まれます。その後、ポートレットは直接またはApplication Programming Interfac(API)を使用して、フォントと色の設定にアクセスします。

ブラウザによってCSS仕様の実装レベルが異なりますが、Oracle WebCenter Frameworkは、この仕様の非常に基本的なサブセットを使用して、整合性のあるフォントと色を実現します。CSSの実装レベルによってブラウザ間でのページの一貫性が影響されることはありません。CSS使用に関するガイドラインは、次のとおりです。

  • ハードコーディングではなくCSSを使用する。フォントと色のハードコーディングは非常に危険です。フォントと色をハードコーディングすると、ユーザーがページ・スタイルの設定を変更した場合に、ポートレットが不釣合いに見えることがあります。開発者はユーザーが設定するフォントや色を予測できないため、ユーザーが選択した背景色と同じフォント色でハードコーディングする可能性があります。この場合、ユーザーはポートレットを識別できなくなります。

  • テキストの書式設定にはCSS APIを使用する。スタイルシートの定義はページの最上部にありますが、直接コールしないでください。かわりに、テキストの適切な書式設定のために用意されているAPIを使用してください。これによって、後でスタイルシートが変更された場合でもポートレットは正しく動作します。

  • CSSを使用した絶対位置の設定は避ける。ユーザーは各自のページをパーソナライズできるため、ポートレットが特定の位置に表示される保証はありません。

  • アクセシビリティの標準に従う。必ず既存のアクセシビリティの標準に従って、スタイルシートを記述してください(詳細はhttp://www.w3.org/TR/WCAG10-CSS-TECHS/を参照)。

18.1.1.2 編集モード(JPSおよびPDK-Java)

ポートレットは編集モードを備えており、これによってユーザーはポートレットの動作をパーソナライズできます。編集モードには設定のリストがあり、ユーザーはその設定を変更できます。設定には、タイトル、コンテンツの種類、書式、情報量、フォーム要素のデフォルト、およびポートレットの外観や内容に影響するあらゆる要素が含まれます。

ユーザーは通常、ポートレットのオプションのドロップダウン・リストから「パーソナライズ」を選択して、ポートレットの編集モードにアクセスします。「パーソナライズ」を選択すると、同じブラウザ・ウィンドウに新しいページが表示されます。このポートレットは、通常、ポートレットの設定を選択するダイアログ・ボックスを表すWebページを作成します。設定を適用すると、自動的に元のページに戻ります。

18.1.1.2.1 編集モード操作に関するガイドライン

次のガイドラインに従って、編集モードでユーザーに公開する内容を管理してください。

  • ユーザーがポートレットのタイトルをパーソナライズできるようにする。同じポートレットが同じページに複数回追加されることがあります。ユーザーがタイトルをパーソナライズできると混乱を避けることができます。

  • キャッシュを使用する場合はコンテンツを無効化する。パーソナライズによってポートレットの表示やコンテンツに変更が生じた場合は、ポートレットのコンテンツが再生成され、キャッシュから戻されないことを確認する必要があります。確認しないと、誤ったコンテンツが表示されることがあります。

  • 編集モードを管理ツールとして使用しない。編集モードは、ユーザーがポートレットの動作を変更するために使用します。プロデューサ設定の変更などの管理タスクが必要な場合は、そのタスク専用の安全なポートレットを作成してください。

18.1.1.2.2 編集モードのボタンに関するガイドライン

整合性を維持し、ユーザーにとっても便利なように、次のボタンを次の順序で編集モードに実装してください。

  • OK: ユーザーのパーソナライズを保存し、ポートレットを表示モードに戻します。

  • 適用: ユーザーのパーソナライズを保存し、現在のページをリロードします。

  • 取消: 変更を保存せずに、ポートレットを表示モードに戻します。

18.1.1.2.3 パーソナライズ値のレンダリングに関するガイドライン

パーソナライズ設定を変更するフォームを表示する場合は、デフォルトの値を表示し、ユーザーが設定を毎回再入力しないで済むようにしてください。動作の整合性を維持するために、パーソナライズ値のレンダリングは次の順序で行います。

  1. ユーザー設定項目: このユーザーのパーソナライズが使用可能な場合は、問い合せて表示します。

  2. インスタンス・デフォルト: ユーザーのパーソナライズがない場合は、ポートレット・インスタンスのシステム・デフォルトを問い合せて表示します。これらのデフォルトは編集モードで設定され、このポートレット・インスタンスに対してのみ適用されます。

  3. ポートレット・デフォルト: システム・デフォルトのパーソナライズがない場合は、一般的なポートレットのデフォルトを表示しますが、空白の場合があります。一般的なポートレットのデフォルトはポートレットにハードコーディングされている場合がありますが、前述の2つの条件のいずれかが該当する場合は上書きしてください。

このロジックによって、WebCenterアプリケーション内の他のポートレットとの整合性がとれた予測可能な方法でパーソナライズを表すことができます。PDK-Javaでは、このようなロジックを簡単に実装できます。

18.1.1.3 デフォルト編集モード(JPSおよびPDK-Java)

ポートレットはデフォルト編集モードを備えており、管理者はこのモードを使用して、特定のポートレット・インスタンスのデフォルト動作をカスタマイズできます。デフォルト編集モードには設定のリストがあり、アプリケーション開発者はその設定を変更できます。設定には、タイトル、コンテンツの種類、書式、情報量、フォーム要素のデフォルト、およびポートレットの外観や内容に影響するあらゆる要素が含まれます。

これらのデフォルトのパーソナライズ設定によって、個々のポートレットの外観とコンテンツをすべてのユーザーに対して変更できます。デフォルト編集モードは、ポートレットの表示内容と表示形式に対してシステム・レベルのデフォルトを定義するためのモードであるため、このモードを管理ツールとして使用したり、他のポートレットの管理に使用したりすることは避けてください。

管理者は、ページの編集時に、ポートレットのドロップダウン・リストから「カスタマイズ」を選択して、デフォルト編集モードにアクセスします。

ユーザーが「カスタマイズ」アイコンをクリックすると、同じブラウザ・ウィンドウにポートレットが表示されます。このポートレットは、通常、ポートレット・インスタンスの設定をパーソナライズするダイアログ・ボックスを表すWebページを作成します。設定を適用すると、ユーザーは自動的に元のページに戻されます。

18.1.1.3.1 デフォルト編集モード・オプションに関するガイドライン

次のガイドラインに従って、デフォルト編集モードでページ設計者に公開する内容を管理してください。

  • デフォルト編集モードを管理ツールとして使用しない。デフォルト編集モードは、ユーザーがポートレットの動作を変更するために使用します。プロデューサ設定の変更などの管理タスクが必要な場合は、そのタスク専用の安全なポートレットを作成してください。

18.1.1.3.2 デフォルト編集モードのボタンに関するガイドライン

整合性を維持し、ユーザーにとっても便利なように、次のボタンを次の順序でデフォルト編集モードに実装してください。

  • OK: ユーザーのパーソナライズを保存し、ポートレットを表示モードに戻します。

  • 適用: ユーザーのパーソナライズを保存し、現在のページをリロードします。

  • 取消: 変更を保存せずに、ポートレットを表示モードに戻します。

18.1.1.3.3 パーソナライズ値のレンダリングに関するガイドライン

パーソナライズ設定を変更するフォームを表示する場合は、デフォルトの値を表示し、アプリケーション開発者が設定を毎回再入力しないで済むようにしてください。動作の整合性を維持するために、パーソナライズ値のレンダリングは次の順序で行います。

  1. インスタンス設定: ポートレット・インスタンスのシステム・デフォルトを問い合せて表示します。

  2. ポートレット・デフォルト: システム・デフォルトのパーソナライズがない場合は、一般的なポートレットのデフォルトを表示しますが、空白の場合があります。一般的なポートレットのデフォルトはポートレットにハードコーディングされている場合がありますが、システム・デフォルトで上書きしてください。

このロジックによって、WebCenterアプリケーション内の他のポートレットとの整合性がとれた予測可能な方法でパーソナライズを表すことができます。

18.1.1.4 プレビュー・モード(JPSおよびPDK-Java)

ポートレットはプレビュー・モードを備えており、ポートレットをページに追加する前に、それがどのように表示されるかをユーザーに示します。プレビュー・モードは、ポートレットの機能を視覚的に表現したものです。すべてのポートレット・コンシューマが、このモードをコールするわけではありません。たとえば、Application Server Portal(OracleAS Portal)ではこのモードを使用しますが、Oracle WebCenter Frameworkでは使用しません。

OracleAS Portalでは、ユーザーが「ポートレットの追加」ページから「プレビュー」アイコンをクリックしたときにこのモードがコールされます。選択したポートレットのプレビューがウィンドウに表示されます。ユーザーは、そのポートレットをページに追加できます。


注意:

このモードには、WebCenterアプリケーションで特定のアプリケーションはありませんが、OracleAS Portalのポートレット・リポジトリでは使用され、虫めがねのアイコンとしてレンダリングされて、ユーザーはポートレットをプレビューするためにこれをクリックします。

プレビュー・モードに関するガイドライン

次のガイドラインに従って、プレビュー・モードでユーザーに公開する内容を管理してください。

  • ポートレットの機能に関する情報を提供する。プレビュー・モードでは、ユーザーがポートレットの実際のコンテンツや機能に関する情報を得られるように、十分なコンテンツを生成する必要があります。

  • ポートレットのプレビューは大きくしない。このモードで生成されるデータの量は、数行以内のHTMLまたは1つの画面ショットにとどめてください。プレビュー・モードは小さい領域に表示されるため、ウィンドウのサイズより大きくなると見栄えが悪くなり、ユーザーによるスクロールが必要になります。

  • ライブ・ハイパーリンクを使用しない。 プレビュー・モードでレンダリングしたリンクは、予想どおりに機能しないことがあります。ハイパーリンクは、下線付きのフォントでシミュレートできます。

  • アクティブ・フォーム・ボタンを使用しない。 プレビュー・モードでレンダリングしたフォームは、予想どおりに機能しないことがあります。フォーム要素をレンダリングする場合、そのフォーム要素はどこにもリンクしないでください。

18.1.1.5 全画面モード(PDK-Java)

ポートレットは全画面モードを使用して、さらに詳細な表示を行える、より大きなバージョンのポートレットを実現します。全画面モードによって、ポートレットは画面全体を使用できます。すべてのポートレット・コンシューマがこのモードをコールするわけではありません。たとえば、OracleAS Portalではこのモードを使用しますが、Oracle WebCenter Frameworkでは使用しません。OracleAS Portalでは、ユーザーは、ポートレットのタイトルをクリックして、ポートレットの全画面モードにアクセスします。

たとえば、ポートレットで経費情報を表示する場合、共有画面モードでは経費の多い上位10人のサマリーを表示し、全画面モードでは各人の経費合計を表示できます。また、ポートレットは、Webアプリケーションへのショートカットも提供できます。ポートレットの共有画面モードに経費領収書発行へのインタフェースがある場合は、全画面モードから経費アプリケーション全体にリンクすることも可能です。

厳密には、JPSポートレットに全画面モードはありません。ただし、表示モード(共有画面モード)とウィンドウの最大化を使用して、JPSポートレット用に全画面モードと同等の機能を実装できます。

18.1.1.6 ヘルプ・モード(JPSおよびPDK-Java)

ポートレットは、ヘルプ・モードを使用して、そのポートレットの機能と使用方法に関する情報を表示します。ユーザーはこのモードで、ポートレットおよびそのコンテンツと機能に関する有用な情報を検索できます。

ユーザーは、ポートレットで「ヘルプ」アクションを選択することで、ポートレットのヘルプ・モードにアクセスします。

ヘルプ・モードに関するガイドライン

次のガイドラインに従って、ヘルプ・モードでユーザーに公開する内容を管理してください。

  • ポートレットの使用方法を説明する。ポートレットのインタフェースのみでは、ポートレットのすべての機能がユーザーに理解されない可能性があります。ポートレットの機能とその活用方法を説明してください。

18.1.1.7 情報モード(JPSおよびPDK-Java)

ユーザーは、実行中のポートレットのバージョン、発行と著作権の情報、および作者への連絡方法を参照できる必要があります。登録が必要なポートレットは、このモードからWebベースのアプリケーションまたは連絡先情報にリンクできます。

ユーザーは、ポートレットのクロムのドロップダウン・リストから「情報」を選択して、ポートレットの情報モードにアクセスします。同じブラウザ・ウィンドウに新しいページが表示されます。この新しいページにコンテンツを生成するか、またはユーザーを既存のページやアプリケーションに移動させることができます。

情報モードに関するガイドライン

次のガイドラインに従って、情報モードでユーザーに公開する内容を管理してください。

  • 関連の著作権、バージョンおよび作成者の情報を表示する。ユーザーは、使用しているポートレットの内容と詳細情報の入手先を参照できる必要があります。この情報ページは、ポートレットのサポート時に重要になることがあります。

リンク・モードに関するガイドライン

次のガイドラインに従って、リンク・モードでユーザーに公開する内容を管理してください。

18.1.2 ポートレット内のナビゲーションのガイドライン

いろいろな点で、1つのポートレットの異なるセクションまたはページ間のナビゲーションは、標準のWebページ間のナビゲーションと似ています。ユーザーはフォームを実行してリンクをクリックできます。通常の標準的なWebページの場合、これらの操作により、新しいコンテンツをレンダリングするサーバーにメッセージが直接送信され、次に、このメッセージがクライアントに戻されます。ポートレットの場合は、ページの一部分のみを構成するため、そのポートレット内でのフォーム実行またはリンクのレンダリングでは、情報は直接ポートレットに渡されません。これらの操作では、情報はWebCenterアプリケーションを介してポートレットに渡されます。ポートレット内でのリンクまたはフォームの実行がアプリケーションを参照しない場合は、そのリンクをたどるとユーザーをアプリケーションから離れさせることになり、通常好ましくない動作です。

コンポーネントの開発者は、フォームまたはリンクのパラメータがユーザー、アプリケーションおよびポートレット間を受け渡しされる詳細な機構を知る必要はありません。しかし、通常の標準的なWebページの場合と同じ方法でポートレット内にリンクを作成できないことは理解しておく必要があります。

ポートレット用のリンクのタイプ

ポートレットは、次の4つのクラスのリンクをレンダリングできます。

図18-1に、これらのリンク・タイプの概要を示します。矢印は、リンクがどのように論理的な参照先であるリソースを参照するかを示します。

図18-1 WebCenterアプリケーション・リンク・タイプ

図18-1の説明が続きます
「図18-1 WebCenterアプリケーション・リンク・タイプ」の説明

18.1.2.1 ポートレット内リンク

ポートレット内リンクは、所定のポートレット内の様々なセクションまたはページに移動します。厳密に言えば、ポートレットが含まれているページが参照されますが、このリンクには、ユーザーによってリクエストされたときに、ポートレットにページ内の様々なセクションまたはページをレンダリングさせるパラメータが含まれています。

この直接の結果として、ポートレットは、独自のサーバー・コンテキストに基づく相対リンクまたは絶対リンクを使用して、自身の様々なセクションまたはページへのリンクのレンダリングをリクエストすることはできません。ポートレット内リンクは、リンクまたはフォーム実行ターゲットとしてポートレット内のナビゲーションには便利です。

18.1.2.2 アプリケーション・リンク

アプリケーション・リンクは、ユーザーのホーム・ページなど、WebCenterアプリケーション内の重要なページを参照します。

18.1.2.3 外部リンク

外部リンクは、ポートレット(ページを介して)も、WebCenterアプリケーションのどの部分も参照しません。これらのリンクを選択した場合、ユーザーはアプリケーション(たとえばwww.oracle.com)から離れることになります。

18.1.2.4 内部/リソース・リンク

内部/リソース・リンクは、(ポートレットの)内部リソースを参照します。このリンクは、ポートレットのレンダリング中に内部で排他的に、たとえばサーバー側インクルードとして、使用されることがあります。また、外部的に、イメージなどのポートレット・リソースの参照に使用されることもあります。外部的に使用される場合は、PDK-JavaのUrlUtilsクラスのconstructResourceURLメソッドを使用し、リソース・プロキシを使用してファイアウォールの内部からイメージを取得します。リソース・プロキシが機能するようにするには、まずプロデューサに対して、JNDI変数oracle/portal/provider/sample/resourceUrlKeyを設定する必要があります。JNDI変数設定の詳細は、19.2.3.2項「JNDI変数値の設定」を参照してください。

たとえば、PDK-Javaに含まれている宝くじのサンプルjspであるlottery.jspには、イメージに対するリソース・プロキシ・リクエストが含まれています。

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page session="false" import="oracle.portal.provider.v2.render.*" %>
<%@ page import="oracle.portal.provider.v2.render.http.HttpPortletRendererUtil" %>
<%@ page import="oracle.portal.provider.v2.url.UrlUtils" %>
<%@ page import="oracle.portal.sample.v2.devguide.lottery.*" %>
<%
  LottoPicker picker = new LottoPicker();
  picker.setIdentity(request.getRemoteAddr() ); %>
<% PortletRenderRequest portletRequest = (PortletRenderRequest)
request.getAttribute("oracle.portal.PortletRenderRequest"); %>
<% String name = portletRequest.getUser().getName(); %>
<P class="PortletHeading1" ALIGN="CENTER">Hi <%= name %>, Your Specially
  Picked</P><P ALIGN="CENTER"><IMG SRC="<%= UrlUtils.constructResourceURL(portletRequest,
  HttpPortletRendererUtil.absoluteLink(request, "images/winningnumbers.gif")) %>"
  WIDTH="450" HEIGHT="69" ALIGN="BOTTOM" BORDER="0"></P>
<P>
<P ALIGN="CENTER">
<TABLE ALIGN="CENTER" BORDER="0" CELLPADDING="0" CELLSPACING="0">
<TR>
<%
     int [] picks = picker.getPicks();
     for (int i = 0; i < picks.length; i++) {
%>
             <TD>
    <IMG SRC="<%= UrlUtils.constructResourceURL(portletRequest,
      HttpPortletRendererUtil.absoluteLink(request, "images/ball" + picks[i])) %>
      .gif" WIDTH="68" HEIGHT="76" ALIGN="BOTTOM" BORDER="0">
     </TD>
<%
     }

セッション・ベースのプロデューサの場合、元のinitSessionコールからプロデューサに戻されるCookieは、リクエストとともに戻され、正しいセッション・コンテキストを維持します。

18.1.3 JavaScriptのガイドライン

JavaScriptは、多くの場合ポートレット内で役に立ちますが、使用するポートレット内では次のガイドラインを念頭に置いてください。

18.1.3.1 デバイス情報に関する注意

モバイル・デバイスからでもデスクトップからでも、すべてのリクエストで一般的なデバイス情報が渡されます。たとえば、属性を渡すリクエストでは、pcbrowserpdabrowsermicrobrowser(携帯電話)などのデバイス・クラスが指定されます。コンポーネント開発者は、レスポンスのレイアウトまたはデータ量を調整するために、この属性を使用できます。

18.1.3.2 パーソナライズ・ページの調整

1つのポートレット・インスタンスは、すべてのデバイス、モバイルおよびデスクトップに対応するユーザー・パーソナライズのセットを1つ含む必要があります。このため、インスタンスが標準ページとモバイル・ページで共有される場合でも、同一のパーソナライズ・ページが表示されます。また、フィールドによっては、1つの環境(デスクトップまたはモバイル)にしか適用されません。このような場合、1つの環境のみに関係するフィールドをポートレットで示す必要があります。たとえば、ポートレットによって、パーソナライズ・ページにモバイル専用セクションを表示することができます。また、モバイル対応は構成できるため、モバイル機能が無効であることをポートレットが検出したときに、モバイル専用の参照をパーソナライズ・ページから削除できます。

18.2 Javaポートレット仕様(JPS)およびWSRPの概要

WebCenterアプリケーション・プロジェクトに従事する組織では、アプリケーションの統合が主要な課題でした。これまでユーザーは、単一のポータル・プラットフォーム専用のAPIを使用してポートレットを開発してきましたが、多くの場合、特定のポータル・ベンダーによるポートレットでは不十分でした。このような状況は、次の標準を導入することで大きく変わります。

この2つの標準によって、異なる複数のポータル製品を相互運用できるポートレットを開発できるため、組織におけるポートレットの可用性が拡大します。この可用性の拡大によって、WebCenterアプリケーションの構築時には、組織の生産性を大幅に向上させることができます。

WSRPはWebサービスの標準です。この標準によって、ポータルまたは他の中間Webアプリケーションを使用する、ユーザー対象で視覚的なWebサービスのプラグ・アンド・プレイが可能になります。1つの標準であるWSRPによって、標準対応のコンテナとWSRPポータル間の相互運用が実現します。WSRPでは、次のものを定義します。

JPSは、ポートレットとポータルの間の相互運用を可能にし、集約、パーソナライズ、表示形式およびセキュリティの各領域に対処する一連のAPIを定義する仕様です。JPSでは、次の機能を提供するコンテナ・サービスを定義します。

Oracleは、WSRP委員会に積極的に参加しており、JPSの専門家グループのメンバーでもあります。


注意:

HTMLフォームはgetまたはpostメソッドを使用して実行できますが、WSRP標準ではコンシューマ(WebCenterアプリケーション)はpostメソッドのみの使用を要求されます。getメソッドのサポートは、WSRP標準に則ってオプション扱いになっています。アプリケーション・コンシューマはgetメソッドをサポートする必要がないので、ポートレット開発の際はpostメソッドを使用することをお薦めします。

WSRPとJPSの関連

WSRPはWebCenterアプリケーション・サーバーとポートレット・コンテナ間の通信プロトコルです。一方、JPSにはポートレットを構築するためのJavaポートレットAPIが記述されています。これらの標準を組み合せることで、開発者は、内部または外部のソースからのアプリケーションをポートレットとしてWSRPポータルに統合できます。Oracle JDeveloperコンポーネント・パレットからポートレットを選択するだけで簡単にページを作成できるようになります。図18-2に、WSRP仕様のアーキテクチャを示します。


注意:

図18-2は、JPSポートレットをWSRPとともに使用する方法を示していますが、WSRPはJPS以外のポートレットでも使用できることに注意してください。

図18-2 WSRP仕様のアーキテクチャ

JSPポートレット・コンテナおよびWSRPポータルを表示。
「図18-2 WSRP仕様のアーキテクチャ」の説明

Oracle WebCenter Frameworkでは、WebCenterアプリケーションと、新規Java Portlet APIおよび既存のAPI(PDK-Java)の両方との通信をサポートできます。図18-3に、WSRPサポートのアーキテクチャを示します。JPS準拠のポートレット・コンテナはWSRPプロトコルを使用して通信を行い、PDK-Javaポートレット・コンテナはOracleの専用SOAPプロトコルを使用して通信を行うことに注意してください。

図18-3 Oracle WebCenterポートレットのアーキテクチャ

PDK-JavaポートレットとJPSポートレット、およびWSRPポータルを表示。
「図18-3 Oracle WebCenterポートレットのアーキテクチャ」の説明

JSR 168セキュリティ概念をWSRPを介して公開する方法については、10.10項「WS-Securityを使用したWSRPプロデューサを介するアイデンティティ伝播の保護」を参照してください。

18.3 ポートレット実行のためのアプリケーション・サーバーまたはスタンドアロンOC4Jの構成

ポートレットは、それぞれが独自の要件セットを持つ任意の数の構成で実行できます。この項では、一般的なシナリオのうち2つ(Oracle Application ServerでのOracle Containers for J2EE(OC4J)の構成およびスタンドアロンOC4Jの構成)の構成要件について説明します。Oracle Application Server 10.1.3.2.0を使用している場合は、ポートレット・プロデューサ(OC4J_WebCenter)を実行するように事前に構成されているOC4Jがすでにあります。OC4J_WebCenterを使用しない場合、またはスタンドアロンOC4Jを使用してポートレット・プロデューサを実行する場合は、次の項の手順に従います。


注意:

Oracle JDeveloperには、最初からPDK-JavaおよびWSRPポートレットをサポートしている構成済OC4Jが備わっています。構成済のOC4Jについては、第3章「開発環境の準備」を参照してください。

ポートレットを実行するためにアプリケーション・サーバーOC4JインスタンスまたはスタンドアロンOC4Jを構成する手順は、次のとおりです。

  1. Oracle Application Serverの一部であるOC4Jの場合、ポートレットをデプロイできる新しいOC4Jインスタンスを作成します。

    1. 次のURLにあるApplication Server Controlコンソールにoc4jadminとしてログインします。

      http://host_name:port_number/em
      

      次に例を示します。

      http://localhost:8888/em
      
    2. 「クラスタ・トポロジ」ページで、アプリケーション・サーバーへのリンクをクリックします。

    3. 「システム・コンポーネント」で、「OC4Jインスタンスの作成」ボタンをクリックします。

    4. 「OC4Jインスタンスの作成」ページで、OC4Jインスタンスの名前を指定します。

      たとえば、WSRPプロデューサに別のインスタンスを作成する場合、そのインスタンスにwsrpという名前を指定します。好きな名前を使用できます。

    5. 「作成後にこのOC4Jインスタンスを起動します。」チェック・ボックスが選択されていることを確認します。

    6. 「作成」をクリックします。

    スタンドアロンOC4Jの場合、Application Server ControlコンソールでスタンドアロンOC4Jを停止します。

    1. 次のURLにあるApplication Server Controlにoc4jadminとしてログインします。

      http://host_name:port_number/em
      

      次に例を示します。

      http://localhost:8888/em
      
    2. OC4Jホームページで、「停止」をクリックします。

  2. 必要に応じて、プリファレンス・ストアを設定します。

    ほとんどのポートレット・プロデューサでは、デフォルトでファイル・プリファレンス・ストアを使用します(Webクリッピング・ポートレットは例外です。詳細は、18.4.3項「Webクリッピング・ポートレットおよびプリファレンス・ストアについて必要な知識」を参照してください)。ファイル・プリファレンス・ストアは、すぐに使用できるように構成されています。可用性を高めるには、かわりにデータベースを使用するようにプリファレンス・ストアを構成します。データベース・プリファレンス・ストアを使用するには、追加の構成が必要です。詳細は、18.4項「プリファレンス・ストアの設定」を参照してください。

  3. ポートレット・ランタイムとサンプル・ポートレット・プロデューサをダウンロードしてインストールします。

    次のURLに関連のダウンロードがあります。

    http://www.oracle.com/technology/products/webcenter/pdk.html
    

    インストールの詳細な手順は、ダウンロードに含まれているreadmeファイルに記載されています。

  4. ORACLE_HOME\binORACLE_HOMEは、使用しているOC4Jのソースの場所)にナビゲートし、次のコマンドを実行することでOC4Jを起動します。

    oc4j -start
    
  5. 構成をテストして、正常に機能することを確認します。

    このためには、サンプルWSRPプロデューサであるwsrp-samples.earを使用できます。wsrp-samples.earはポートレット・コンテナ・ディレクトリにあります。

    スタンドアロンOC4Jの場合、このファイルは手順3でダウンロードしたファイル内にあります。Application Server OC4Jの場合、このファイルはORACLE_HOME\adfp\libにあります。

    先に進む前に、EARファイル、sampleportletsをデプロイする必要があります。

    サンプル・ポートレットEARファイルをデプロイする手順は、次のとおりです。

    1. Application Server Controlコンソールに戻ります。

      次のURLにあるApplication Server Controlにoc4jadminとしてログインします。

      http://host_name:port_number/em
      

      次に例を示します。

      http://localhost:8888/em
      
    2. Oracle Application Serverで、ポートレットをデプロイするOracle Application Server中間層インスタンスをクリックします。

    3. Oracle Application Serverで、先に作成したOC4Jインスタンスwsrpをクリックします。

    4. 「アプリケーション」タブをクリックします。

    5. 「デプロイ」をクリックします。

      「デプロイ: アーカイブの選択」ページが表示されます。

    6. 「アーカイブはローカル・ホストに存在します。アーカイブをApplication Server Controlが稼働しているサーバーにアップロードします。」を選択します。

    7. 「アーカイブの場所」に、wsrp-samples.earのファイル名とそのパスを入力します。

    8. 「新規デプロイ・プランを自動的に作成します。」を選択します。

    9. 「次へ」をクリックします。

      EARファイルがアップロードされるまで待ちます。ファイルがアップロードされると、「デプロイ: アプリケーション属性」ページが表示されます。

    10. 「アプリケーション名」sampleportletsと入力します。

    11. 「コンテキスト・ルート」には、次のように入力します。

      スタンドアロンOC4Jの場合、portletappと入力します。

      Application Serverインスタンスの場合、すでに使用されている以外の名前を入力します。

    12. 「次へ」をクリックします。

      「デプロイ: デプロイ設定」ページが表示されます。

    13. 「デプロイ」をクリックします。

      このページでデプロイ設定を変更することもできますが、ここでは「デプロイ」をクリックします。

      デプロイメントの確認ページが表示されます。

    14. 設定が正しいかどうか注意深くチェックします。

    15. 「戻る」をクリックして「確認」ページを終了します。

    EARファイルのデプロイ方法の詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。

  6. サンプルEARファイルをデプロイしたら、ブラウザにそのWSDL URLを入力してテストします。

    WSDL URL構文には、次の構造を使用します。

    http://<host>:<port>/portletapp/info
    

    Webページには、図18-4に示すようなコンテンツが表示されます。

    図18-4 WSRPプロデューサ(WSDL URL)テスト・ページの例

    WSRPプロデューサ・テスト・ページの例
    「図18-4 WSRPプロデューサ(WSDL URL)テスト・ページの例」の説明

  7. 「WSDL URLS」の下にあるポートレット・プロデューサの1つのリンクの場所をコピーし、18.10項「ポートレットの登録と表示」の手順に従ってこのポートレット・プロデューサを登録します。

    さらに、新しく登録したポートレット・プロデューサからサンプル・ポートレットのいくつかをページに追加し、そのページを表示して、構成をテストします。なんらかの理由で登録に失敗するか、ページにポートレットを追加できない場合は、付録G「WebCenterアプリケーションのトラブルシューティング」を参照してください。

18.4 プリファレンス・ストアの設定

ポートレット・プリファレンス・ストアは、コンシューマ登録ハンドルおよびポートレット・プリファレンス・データを永続化するために使用されます。ポートレット・プロデューサでは、ファイルおよびデータベースの2タイプのプリファレンス・ストアの1つを使用できます。大部分のポートレット・プロデューサの場合、ファイル・プリファレンス・ストアがデフォルトで指定されており、そのまますぐに使用できます。データベース・プリファレンス・ストアには、追加の構成が必要です。

クラスタ環境では、データベース・プリファレンス・ストアの使用をお薦めします。ファイルベースのプリファレンス・ストアを使用する場合は、共有ファイル・システムも使用する必要があります。

この項では、データベース・プリファレンス・ストアとファイルベースのプリファレンス・ストアの設定方法について説明します。この項の内容は、次のとおりです。

18.4.1 データベース・プリファレンス・ストアの設定

データベース・プリファレンス・ストアは、高可用性が重要な環境に適しています。ポートレット・プロデューサにデータベース・プリファレンス・ストアを設定するには、デフォルトのファイル・プリファレンス・ストアに必要なものに加えて多少の構成が必要です。次に例を示します。

  • プリファレンスを格納するためのスキーマは、データベースに作成する必要があります。

  • 接続の詳細は、データソースにマップする必要があります。

  • プリファレンス・ストア・タイプは、persistentStore JNDI環境変数(WSRP)またはpreferenceStoreタグ(PDK-Java)を使用して指定する必要があります。

この項では、WSRPプロデューサおよびPDK-Javaプロデューサのデータベース・プリファレンス・ストアとファイルベースのプリファレンス・ストアの設定方法について説明します。この項の内容は、次のとおりです。

18.4.1.1 データベース・プリファレンス・ストア用スキーマの作成

データベース・プリファレンス・ストアを使用する場合、WSRPおよびPDK-Javaの両方のプロデューサでデータベース・スキーマの作成が必要です。Oracle Application Serverインフラストラクチャ・データベースまたはその他のOracleデータベースに、このためのスキーマを作成できます。

ポートレット・プロデューサ・データベース・プリファレンス・ストア用のデータベース・スキーマを作成するには、スクリプトdbprefstore.sqlを使用できます。1つの操作で、スクリプトによりWSRPプロデューサおよびPDK-Javaプロデューサ用のデータベース・スキーマが作成されます。


注意:

Webクリッピング・プロデューサ用のスキーマ作成の詳細は、18.4.3項「Webクリッピング・ポートレットおよびプリファレンス・ストアについて必要な知識」を参照してください。

スクリプトの名前はdbprefstore.sqlで、次の場所にあります。

ORACLE_HOME/j2ee/home/database/wsrp/

注意:

このスクリプトのディレクトリ・パスにはwsrpが含まれていますが、スクリプトは、WSRPとPDK-Javaの両方のプリファレンス・ストア用データベース・オブジェクトを作成します。

WSRPプロデューサおよびPDK-Javaプロデューサのプリファレンス・ストア用データベース・スキーマを作成する手順は、次のとおりです。

  1. SYSアカウントおよびSYSDBAデータベース管理者ロールを使用して、SQL*Plusに接続します。

    プロンプトで次のように入力します。

    1. Enter user-name: SYS AS SYSDBA

    2. Enter password: SYS_password

  2. SQLプロンプトで、次のように入力します。

    SQL> @ORACLE_HOME\j2ee\home\database\wsrp\dbprefstore.sql
    
  3. 要求されたら、WSRPおよびPDK-Javaプリファレンス・ストア・データベース・スキーマのユーザー名およびパスワードを入力します。

    たとえば、ユーザー名はportlet_prefsのようになります。

コマンドが実行されると、データベース・プリファレンス・ストアが作成され、スキーマに必要なデータベース・オブジェクトが移入されます。


注意:

データベース・プリファレンス・ストアから別のデータベース・プリファレンス・ストアへ、またはデータベース・プリファレンス・ストアからファイル・プリファレンス・ストアへのポートレット・プリファレンスの移行については、付録B「その他のポートレット構成」を参照してください。

18.4.1.2 JDBCデータソースへの接続の詳細のマッピング

ポートレット・プリファレンス・スキーマが作成されると、プロデューサにポートレット・プリファレンス・ストアのある場所を指示する必要があります。これは、WSRPに1回、PDK-Javaに1回、計2回行う必要があります。

Application Server Controlコンソールを使用して、接続の詳細をJDBCデータソースにマップすることにより、ポートレット・プリファレンスのある場所をプロデューサに指示します。これらの詳細は、data-sources.xmlファイルに格納されています。

この項では、WSRPおよびPDK-Javaの両方のポートレット・プロデューサにこのマッピングを行う方法を、わずかな違いがある点に注意しながら説明します。

接続の詳細をWSRPポートレット・プロデューサおよびPDK-Javaポートレット・プロデューサのJDBCデータソースにマップする手順は、次のとおりです。

  1. Application Server Controlコンソールにログインします。

    通常は、Application Server ControlコンソールのURLは次の形式です。

    http://hostname:port/em/
    
  2. 構成するOC4Jのホームページにナビゲートします。

  3. 「管理」タブをクリックします。

    「管理タスク」リストが表示されます。

  4. 「サービス」タスクで、JDBCリソースの「タスクに移動」アイコンをクリックします。

    「JDBCリソース」ページが表示されます。

  5. 「接続プール」セクションで、「作成」をクリックします。

    「接続プールの作成 - アプリケーション」ページが表示されます。このページで、新規接続プールを追加するアプリケーションを指定できます。さらに、接続プールを作成するか、既存のものを使用するかを指定できます。

  6. 「アプリケーション」リストから、「デフォルト」を選択します。

  7. 「続行」をクリックします。

    「接続プールの作成」ページが表示されます。このページを使用して、接続プールの作成に必要な詳細を指定します。

  8. 表18-1で説明しているように値を入力します。

    表18-1 「接続プールの作成」の設定(データベース・ポートレット・プリファレンス・ストア)

    設定

    名前

    この接続プールの名前を入力します。

    たとえば、WSRPプロデューサには、次のように入力します。

    OracleWSRPPool
    

    たとえば、PDK-Javaプロデューサには、次のように入力します。

    OraclePDKPool
    

    コネクション・ファクトリ・クラス

    次のデフォルト値を受け入れます。

    oracle.jdbc.pool.OracleDataSource
    

    JDBC URL

    プリファレンス・ストア用に作成したスキーマを含むOracleデータベースのJDBC URLを、次の構文を使用して入力します。

    jdbc:oracle:thin:@//dbhost:dbport/service_name
    

    次に例を示します。

    jdbc:oracle:thin:@//shobeen:1521/sales_us
    

    ユーザー名

    プリファレンス・ストア用のスキーマを作成したデータベースのユーザー名を入力します。

    間接パスワードの使用/<間接パスワード>

    「ユーザー名」フィールドで指定したユーザーに対して、プリファレンス・ストア・スキーマを含むデータベースの間接パスワードを入力します。次に例を示します。

    role/username
    

    次に例を示します。

    users/Scott
    

  9. 「終了」をクリックします。

    「JDBCリソース」ページが表示されます。

  10. 新規に作成した接続に対して、「接続テスト」アイコンをクリックします。

    テストに失敗した場合は、接続プールが正しく設定されていることを確認します。

  11. 「データソース」セクションで、「作成」をクリックします。

    「データ・ソースの作成 - アプリケーションとタイプ」ページが表示されます。このページを使用して、新規データソースを追加するアプリケーションとデータソースのタイプを指定します。

  12. 「アプリケーション」リストから、「デフォルト」を選択します。

  13. 「続行」をクリックします。

    「データ・ソースの作成 - 管理データ・ソース」ページが表示されます。このページを使用して、管理データソース作成のための詳細を指定します。

  14. 表18-2で説明しているように値を入力します。

    表18-2 「データ・ソースの作成」の設定(WSRPプロデューサ・プリファレンス・ストア)

    設定

    名前

    データソースの名前を指定します。

    たとえば、WSRPプロデューサ・プリファレンス・ストアには、次のように入力します。

    WSRP_PREF_DS
    

    たとえば、PDK-Javaプリファレンス・ストアには、次のように入力します。

    PDK_PREF_DS
    

    JNDIロケーション

    JNDIパスを次のように入力します。

    jdbc/portletPrefs
    

    トランザクション・レベル

    次のデフォルト値を受け入れます。

    Global & Local Transactions
    

    接続プール

    先に作成した接続プールを選択します。

    たとえば、WSRPプロデューサ・プリファレンス・ストアには、次のように入力します。

    OracleWSRPPool
    

    PDK-Javaプロデューサ・プリファレンス・ストアには、次のように入力します。

    OraclePDKPool
    

    ログイン・タイムアウト(秒)

    デフォルト値(0)を受け入れます。


  15. 「終了」をクリックします。

18.4.1.3 プロデューサ構成ファイルでのポートレット・プリファレンス・ストア変数の設定

スクリプトを実行してデータベース・プリファレンス・ストア用のデータベース・オブジェクトを設定し、接続の詳細をJDBCデータソースにマップした後、両方のポートレット・プロデューサのタイプには、構成ファイル(WSRPプロデューサのweb.xmlとPDK-Javaプロデューサのprovider.xml)で多少の追加調整が必要です。これらのファイルで、プリファレンス・ストアのタイプと、場合によっては、プリファレンス・ストアの場所を指定する必要があります。

この項では、次のようなタスクの実行方法について説明します。この項の内容は、次のとおりです。

18.4.1.3.1 WSRPポートレット・プロデューサのプリファレンス・ストア関連変数の設定

プリファレンス・ストア・データベース・オブジェクトが作成され、ポートレット・プロデューサでオブジェクトの場所が認識されていれば、データベース・プリファレンス・ストアでデフォルトのファイル・プリファレンス・ストアのかわりにデータベース・プリファレンス・ストアが使用されることを、ポートレット・プロデューサに指示する必要があります。これには、JNDI変数persistentStoreDatabaseの値に設定します。

すべてのWSRPプロデューサについて、関連のweb.xmlファイルで、JNDIプリファレンス・ストア変数を設定します。

例18-1は、各種WSRPプロデューサのweb.xmlファイルのサンプル・ファイルの場所を示しています。

例18-1 web.xmlファイルのサンプル・ファイルの場所

Rich Text Portlet Producer:
ORACLE_HOME\j2ee\OC4J_WebCenter\applications\richtextportlet\richtextportlet\WEB-INF

WSRP Samples Producer:
ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portletapp\wsrp-samples\WEB-INF

表18-3では、データベース・プリファレンス・ストア関連のJNDI変数とその説明を示しています。

表18-3 WSRPプロデューサ・データベース・プリファレンス・ストア関連のJNDI変数

変数名 変数値 説明

oracle/portal/wsrp/server/persistentStore

Database

ポートレット・アプリケーションのコンシューマ登録ハンドルおよびポートレット・プリファレンスを永続化するために使用する、データ・ストア(ファイルまたはデータベース)を指定します。

指定可能な値: {File, Database}


例18-2は、プロデューサのweb.xmlファイルで設定されるデータベース・プリファレンス・ストアを示しています。ファイルベースのプリファレンス・ストアからデータベース・プリファレンス・ストアに移動する場合は、設定したプリファレンス・ストアから必ずfileStoreRootタグを削除してください(fileStoreRootタグの例は例18-5を参照)。


注意:

プリファレンス・ストア関連の変数は、WSRPプロデューサweb.xmlファイルにある場合も、ない場合もあります。変数を入力する前に、それらを探してください。変数がある場合は、それを希望どおりに変更します。変数がない場合は、例18-2に示したように変数を入力してください。

例18-2 データベース・プリファレンス・ストアを使用するためのweb.xmlの構成

<env-entry>
  <env-entry-name>oracle/portal/wsrp/server/persistentStore</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>Database</env-entry-value>
</env-entry>

すべての関連web.xmlファイルを変更したら、OC4Jインスタンスを再起動します。

18.4.1.3.2 PDK-Javaポートレット・プロデューサのプリファレンス・ストア関連変数の設定

プリファレンス・ストア・データベース・オブジェクトが作成され、PDK-Javaプロデューサでオブジェクトの場所が認識されていれば、データベース・プリファレンス・ストアでデフォルトのファイル・プリファレンス・ストアのかわりにデータベース・プリファレンス・ストアが使用されることを、PDK-Javaプロデューサに指示する必要があります。これには、各PDK-Javaプロデューサのprovider.xmlファイル内のpreferenceStoreタグの値を設定します。

例18-3は、各種PDK-Javaプロデューサのprovider.xmlファイルのサンプル・ファイルの場所を示しています。

例18-3 provider.xmlファイルのサンプル・ファイルの場所

Omniportlet:
ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portalTools\omniPortlet\WEB-INF\providers\omniPortlet

JPDK samples:
ORACLE_HOME\j2ee\OC4J_WebCenter\applications\jpdk\jpdk\WEB-INF\providers\providername

注意:

Webクリッピング・ポートレット・プロデューサ用のリポジトリ構成の詳細は、18.4.3項「Webクリッピング・ポートレットおよびプリファレンス・ストアについて必要な知識」を参照してください。

preferenceStoreタグを変更して、データベース・プリファレンス・ストアを使用します(例18-4)。

例18-4 データベース・プリファレンス・ストアを使用するためのprovider.xmlの構成

<preferenceStore class="oracle.portal.provider.v2.preference.DBPreferenceStore">
  <name>producer_name</name>
  <connection>jdbc/PooledConnection</connection>
</preferenceStore>

例18-4で、producer_nameを実際のプロデューサ名に置き換えます(ここで入力する名前は任意です)。それ以外の場合は、例をそのまま使用します。


注意:

preferenceStoreタグのデータベース関連の属性およびパラメータとその説明は、18.4.1.4項「preferenceStoreタグのデータベース関連の属性およびパラメータ」を参照してください。

すべての関連provider.xmlファイルを変更したら、OC4Jインスタンスを再起動します。

18.4.1.4 preferenceStoreタグのデータベース関連の属性およびパラメータ

表18-4は、データベース・プリファレンス・ストアが指定された場合に、preferenceStoreタグで使用される属性およびパラメータとその説明を示しています。

表18-4 preferenceStoreタグのデータベース関連の属性およびパラメータ

属性/パラメータ 説明

class

この必須属性は、ポートレット・プリファレンスの場所およびその他の詳細を定義するJavaクラスを指定します。たとえば、データベース・プリファレンス・ストアは次のクラスを使用します。

<preferenceStore class="oracle.portal.provider.v2.preference.DBPreferenceStore">

name

この必須パラメータは、プリファレンス・ストアの名前を指定します。選択する任意の値を使用します。次に例を示します。

<preferenceStore class="oracle.portal.provider.v2.preference.DBPreferenceStore">
  <name>MyPDKProducerPreferenceStore</name>
</preferenceStore>

connection

この必須パラメータ(データベース・プリファレンス・ストアの場合)は、J2EEのdata-sources.xmlファイルで定義されている接続を指定します。次に例を示します。

<preferenceStore class="oracle.portal.provider.v2.preference.DBPreferenceStore">
  <name>MyPDKProducerPreferenceStore</name>
  <connection>jdbc/PooledConnection</connection>
</preferenceStore>

18.4.2 ファイルベースのプリファレンス・ストアの設定

ファイルベース・プリファレンス・ストアは、ポートレット・プロデューサ用のデフォルトのプリファレンス・ストア・タイプで、最初から構成されています。


注意:

クラスタ環境でファイルベースのプリファレンス・ストアを使用する場合、クラスタ内の各ノードは同じ場所を使用する必要があります。

データベース・プリファレンス・ストアからファイルベースのプリファレンス・ストアに移動する場合、またはファイルベースのプリファレンス・ストアの場所を変更する場合のために、この項では、WSRPおよびPDK-Javaの両方のポートレット・プロデューサ用にファイルベースのプリファレンス・ストアを設定する方法について説明します。この項の内容は、次のとおりです。


注意:

データベース・プリファレンス・ストアからファイル・プリファレンス・ストアへのポートレット・プリファレンスの移行については、付録B「追加のポートレット構成」を参照してください。

18.4.2.1 ファイルベースのプリファレンス・ストアを使用するためのWSRPプロデューサの構成

WSRPプロデューサの場合、ファイルベースのプリファレンス・ストアに必要な構成はすべて、プロデューサのweb.xmlファイルで生じたものです。複数のプロデューサの場合は、複数のweb.xmlファイルになります。そのような環境では、必ずすべての関連web.xmlファイルを構成します。


注意:

各種WSRPプロデューサのweb.xmlファイルのサンプル・ファイルの場所は、例18-1を参照してください。

2つのJNDI変数(persistentStoreおよびfileStoreRoot)が、WSRPプロデューサ用のプリファレンス・ストアの機能を制御します。データベースとファイルのプリファレンス・ストアにはどちらにもpersistentStore変数が必要です。fileStoreRoot変数は、ファイル・プリファレンス・ストアがある場合にのみ使用されます。


注意:

JNDI変数設定の追加情報は、19.2.3項「JNDI変数の使用方法」を参照してください。

表18-5では、WSRPプロデューサ・プリファレンス・ストア関連のJNDI変数で、ファイルベースのプリファレンス・ストア関連の変数とその説明を示しています。

表18-5 WSRPプロデューサ・ファイル・プリファレンス・ストア関連のJNDI変数

変数名 デフォルト変数値 説明

oracle/portal/wsrp/server/persistentStore

File

ポートレット・アプリケーションのコンシューマ登録ハンドルおよびポートレット・プリファレンスを永続化するために使用する、データ・ストア(ファイルまたはデータベース)を指定します。

指定可能な値: {File, Database}

oracle/portal/wsrp/server/fileStoreRoot

portletdata

ファイル・プリファレンス・ストアで使用されるルート・ディレクトリのパスを定義します。絶対パスは、ファイル・システム・ルートを基準として解釈されます。相対パスは、ORACLE_HOME\portalディレクトリを基準として解釈されます。

同じOC4Jインスタンス内で実行されているプロデューサはすべて、この変数について同じパスを使用する必要があります。そうしないと、一部のポートレットに対してPortlet unavailableエラーが発生します。


例18-5は、WSRPプロデューサのweb.xmlファイルでのデフォルトのプロデューサ・プリファレンス・ストア設定を示しています。関連の設定は、太字で示されています。


注意:

プリファレンス・ストア関連の変数は、WSRPプロデューサweb.xmlファイルにある場合も、ない場合もあります。変数を入力する前に、それらを探してください。変数がある場合は、それを希望どおりに変更します。変数がない場合は、例18-5に示したように変数を入力してください。

例18-5 ファイルベースのプリファレンス・ストアを使用するためのweb.xmlの構成

<env-entry>
  <env-entry-name>oracle/portal/wsrp/server/persistentStore</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>File</env-entry-value>
</env-entry>
<env-entry>
  <env-entry-name>oracle/portal/wsrp/server/fileStoreRoot</env-entry-name>
  <env-entry-type>java.lang.String</env-entry-type>
  <env-entry-value>portletdata</env-entry-value>
</env-entry>

すべての関連web.xmlファイルを変更したら、OC4Jインスタンスを再起動します。

18.4.2.2 ファイルベースのプリファレンス・ストアを使用するためのPDK-Javaプロデューサの構成

PDK-Javaプロデューサでは、provider.xml構成ファイルでpreferenceStoreタグを使用して、使用するプロデューサ・プリファレンス・ストアのタイプを指定します。複数のプロデューサの場合は、複数のprovider.xmlファイルになります。そのような環境では、必ずすべての関連provider.xmlファイルを構成します。


注意:

各種PDK-Javaプロデューサのprovider.xmlファイルのサンプル・ファイルの場所は、例18-3を参照してください。

ファイルベースのプリファレンス・ストアを使用するために、preferenceStoreタグを変更します。必要に応じて、タグを追加します。例18-6で、producer_nameを実際のプロデューサ名に置き換えます(ここで入力する名前は任意です)。それ以外の場合は、OmniPortlet以外のすべてのPDK-Javaポートレット用に書かれた例をそのまま使用します(例18-7を参照)。

例18-6 ファイルベースのプリファレンス・ストアを使用するためのprovider.xmlの構成

<preferenceStore class="oracle.portal.provider.v2.preference.FilePreferenceStore">
  <name>producer_name</name>
  <useHashing>true</useHashing>
</preferenceStore>

OmniPortletでは、他のすべてのPDK-Javaポートレット・プロデューサで使用される標準クラスとは異なるpreferenceStoreクラスを使用します。OmniPortlet preferenceStoreクラスは、デフォルトのクラスをOmniPortlet固有の機能で拡張します。さらに、rootDirectoryパラメータを使用し、ポートレット・プリファレンスの格納場所を指定します。


注意:

rootDirectoryパラメータは、OmniPortlet専用ではありません。他のポートレットも同様に使用できます。次に例を示します。
  <rootDirectory>
    ORACLE_HOME/portal/portletdata/tools/providerBuilder
  </rootDirectory>

rootDirectoryパラメータを指定しないと、ポートレット・プリファレンスの格納にはデフォルトの場所が使用されます。これは、プロデューサのプロバイダ定義ファイルが格納されているのと同じ場所です。

rootDirectoryでは、${oracle.home}の表現はOmniPortlet固有のもので、他のポートレット・プリファレンス・ストア構成には使用できません。

preferenceStoreタグのファイル関連の属性およびパラメータとその説明は、18.4.2.3項「preferenceStoreタグのファイル関連の属性およびパラメータ」を参照してください。


例18-7では、ファイルベース・プリファレンス・ストア用のOmniPortlet preferenceStoreクラスの指定を示しています。OmniPortletにファイルベースのプリファレンス・ストアを指定する際には、例18-7で指定したパラメータとパラメータ値を使用します。

例18-7 ファイルベースのプリファレンス・ストアを使用するためのOmniPortletのprovider.xmlファイルの構成

<preferenceStore class="oracle.webdb.reformlet.ReformletFilePreferenceStore">
  <name>omniPortletprefStore</name>
  <useHashing>true</useHashing>
  <rootDirectory>
    ${oracle.home}/portal/portletdata/tools/omniPortlet
  </rootDirectory>
</preferenceStore>

すべての関連provider.xmlファイルを変更したら、OC4Jインスタンスを再起動します。

18.4.2.3 preferenceStoreタグのファイル関連の属性およびパラメータ

表18-6は、ファイルベース・プリファレンス・ストアが指定された場合に、preferenceStoreタグで使用される属性およびパラメータとその説明を示しています。

表18-6 preferenceStoreタグのファイル関連の属性およびパラメータ



class

この必須属性は、ポートレット・プリファレンスの場所およびその他の詳細を定義するJavaクラスを指定します。たとえば、大部分のPDK-Javaポートレット・プロデューサでは、ファイルベース・プリファレンス・ストアに次のクラスを使用します。

<preferenceStore class="oracle.portal.provider.v2.preference.FilePreferenceStore">

OmniPortletでは、独自のクラスを使用します。次に例を示します。

<preferenceStore class="oracle.webdb.reformlet.ReformletFilePreferenceStore">

詳細は、18.4.2.2項「ファイルベースのプリファレンス・ストアを使用するためのPDK-Javaプロデューサの構成」を参照してください。

name

この必須パラメータは、プリファレンス・ストアの名前を指定します。選択する任意の値を使用します。次に例を示します。

<preferenceStore class="oracle.portal.provider.v2.preference.DBPreferenceStore">
  <name>MyPDKProducerPreferenceStore</name>
</preferenceStore>

rootDirectory

このオプション・パラメータは、ファイルベース・プリファレンス・ストアのプリファレンスが格納される場所を指定します。

<preferenceStore class="oracle.webdb.reformlet.ReformletFilePreferenceStore">
  <name>PDKProducerPreferenceStore</name>
  <useHashing>true</useHashing>
  <rootDirectory>
    ORACLE_HOME/portal/portletdata/tools/providerBuilder
  </rootDirectory>
</preferenceStore>

OmniPortletには、このパラメータに独自の値があります。次に例を示します。

  <rootDirectory>
    ${oracle.home}/portal/portletdata/tools/omniPortlet
  </rootDirectory>

詳細は、18.4.2.2項「ファイルベースのプリファレンス・ストアを使用するためのPDK-Javaプロデューサの構成」を参照してください。

このパラメータがpreferenceStoreタグで含まれていない場合は、デフォルトのファイルベース・プリファレンス・ストアの場所が使用されます。これは、プロデューサのプロバイダ定義ファイルが格納されているのと同じフォルダです。

useHashing

このオプション・パラメータには、trueまたはfalseの値を指定します。trueの場合、各プリファレンス・データ・ファイルは、データ・ファイル名をハッシュすることで指定した名前を持つ別のサブディレクトリに格納されます。このパラメータを使用すると、単一のディレクトリに格納されるプリファレンス・データ・ファイルの数を制限することにより、ファイル・システムのパフォーマンスを高められます。

次に例を示します。

<preferenceStore class="oracle.portal.provider.v2.preference.FilePreferenceStore">
  <name>PDKProducerPreferenceStore</name>
  <useHashing>true</useHashing>
</preferenceStore>

18.4.3 Webクリッピング・ポートレットおよびプリファレンス・ストアについて必要な知識

Webクリッピング・ポートレットには、プリファレンス・ストアの使用に関して、独特の場合があります。Webクリッピング・ポートレットでは、プリファレンス・ストアを使用しません。かわりに、Webクリッピングの定義およびクリッピングをリポジトリに置きます。これはOracle MetaData Services(MDS)リポジトリ(ファイル・システムにあるデフォルトで、そのまま使用できる構成)またはデータベース・リポジトリ(高可用性には最適)のどちらかです。

この項では、Webクリッピングの定義およびクリッピング用に、データベース・リポジトリまたはMDSリポジトリを使用するように、Webクリッピング・ポートレット・プロデューサを構成する方法について説明します。この項の内容は、次のとおりです。

18.4.3.1 データベース・リポジトリを使用するためのWebクリッピング・ポートレット・プロデューサの構成

Webクリッピングの定義およびクリッピングの格納のためにデータベース・リポジトリを使用するには、2つのタスクを完了する必要があります。

18.4.3.1.1 Webクリッピング・ポートレットの定義およびクリッピング用のデータベース・スキーマの作成

Webクリッピングの定義およびクリッピング用のデータベース・スキーマを作成するには、例18-8のJavaコマンドを実行します。

例18-8 Webクリッピング・ポートレットの定義およびクリッピング用のスキーマを作成するためのJavaコマンド

ORACLE_HOME/jdk/bin/java -classpath ORACLE_HOME/lib/xmlparserv2.jar:
ORACLE_HOME/jdbc/lib/ojdbc14.jar:ORACLE_HOME/portal/jlib/wce.jar
oracle.portal.wcs.Installer -installSchema -username dbuser -password
dbpassword -dburl jdbc:oracle:thin:@//host:port/dbid

注意:

例18-8のクラスパスでは、UNIXとWindowsで異なるセパレータを使用しています。UNIXシステムでは、classpathにコロン(:)セパレータを使用します。Windowsシステムでは、classpathにセミコロン(;)セパレータを使用します。

これらの意味は、次のとおりです。

  • ORACLE_HOMEは、使用するOracleホーム・ディレクトリのパスです。

  • dbuserは、スキーマのデータベース・ユーザーです。

    WSRPおよびPDK-Javaのプリファレンス・ストア・データベース・スキーマの作成で使用したものと同じデータベースを使用することを検討してください。18.4.1.1項「データベース・プリファレンス・ストア用スキーマの作成」を参照してください。同じユーザーを使用しない場合は、新規のユーザーを作成し、接続権限とリソース権限を付与する必要があります。

  • dbpasswordは、指定したユーザーのパスワードです。

  • dburlは、データベースのURLです。

    これは、次の構文を使用してWebクリッピング・ポートレットの定義およびクリッピング用に作成したスキーマを含むデータベースです。

    jdbc:oracle:thin:@//dbhost:dbport/service_name
    

    次に例を示します。

    jdbc:oracle:thin:@//shobeen:1521/sales_us
    
18.4.3.1.2 Webクリッピング・ポートレットのprovider.xmlファイルの構成

Webクリッピング・プロデューサ・データベース・リポジトリを、次の場所にあるプロデューサのprovider.xmlファイルで設定します。

ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portalTools\webClipping\WEB-INF\providers\webClipping

データベース・リポジトリを使用するには、例18-9で示すように、repositoryInfoタグを更新して、DatabaseInformationクラスを使用するようにします。タグ・パラメータについては、18.4.3.3項「repositoryInfoタグの属性および子タグ」で説明しています。

例18-9 Webクリッピングの定義およびクリッピング用にデータベース・リポジトリを使用するためのWebクリッピングprovider.xmlファイルの構成

<repositoryInfo class="oracle.portal.wcs.provider.info.DatabaseInformation">
  <useRAA>false</useRAA>
  <databaseHost>infradbhost</databaseHost>
  <databasePort>1521</databasePort>
  <databaseSid>iasdb</databaseSid>
  <databaseUsername>webclip_user</databaseUsername>
  <databasePassword>!AX3tR</databasePassword>
  <useASO>false</useASO>
</repositoryInfo>

provider.xmlファイルに変更を加えた後、OC4Jを再起動します。

18.4.3.2 Oracle Metadata Servicesリポジトリを使用するためのWebクリッピング・ポートレット・プロデューサの構成

Webクリッピング・プロデューサMDSリポジトリを、次の場所にあるプロデューサのprovider.xmlファイルで設定します。

ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portalTools\webClipping\WEB-INF\providers\webClipping

MDSリポジトリを使用するには、例18-10で示すように、repositoryInfoタグを更新して、MdsInformationクラスを使用するようにします。タグ・パラメータについては、18.4.3.3項「repositoryInfoタグの属性および子タグ」で説明しています。

例18-10 Webクリッピングの定義およびクリッピング用にOracle Metadata Servicesリポジトリを使用するためのWebクリッピングprovider.xmlファイルの構成

<repositoryInfo class="oracle.portal.wcs.provider.info.MdsInformation">
  <mdsConfigLocation>mds-config.xml</mdsConfigLocation>
</repositoryInfo>

この構成は、実際のMDSの場所を指定するmds-config.xmlファイルを指しています。デフォルトでは、mds-config.xmlファイルは、次の場所にあります。

ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portalTools\webClipping\WEB-INF

mds-config.xmlファイルは、プロパティ・タグ内でリポジトリの場所を指定しています(例18-11)。

例18-11 mds-config.xmlファイルでのMDSリポジトリの場所の指定

<property name="metadata-path" value="portletdata/tools/webClipping"/>

注意:

mds-config.xmlmetadata-pathの値を手動で構成する場合、そのディレクトリは、プロデューサの再起動時に存在しているはずです。

valueに指定される場所は、ORACLE_HOME\portalを基準としています。指定される相対パスは、ORACLE_HOME\portalを基準としているものと解釈されます。別の場所(たとえば、Oracleホーム外の場所)を使用する場合は、絶対パス(c:\mdsなど)を指定します。

この項で説明した変更を行ったら、OC4Jインスタンスを再起動します。

18.4.3.3 repositoryInfoタグの属性および子タグ

表18-7では、repositoryInfoタグの属性および子タグとその説明を示しています。


注意:

repositoryInfoタグの属性および子タグは、Webクリッピングのprovider.xmlファイルのコメントでも説明されています。

provider.xmlファイルのコメントでは、ASインフラストラクチャ・データベースを使用するOracle9iデータベース以上用に提供されている例は、OracleAS Portalと、そのインフラストラクチャ・データベースおよびアプリケーション・プログラミング・インタフェース専用です。その例は、WebCenterアプリケーションの実装には使用しないでください。


表18-7 repositoryInfoタグの属性および子タグ

属性/パラメータ MDS/データベース 説明

class

両方

class属性は、Webクリッピングの定義の格納に使用されるリポジトリのタイプを指定します。この属性には、次の2つの値を指定できます。

oracle.portal.wcs.provider.info.MdsInformation

この値は、Webクリッピングの定義の格納にMDSが使用され、MDS構成がmds-config.xmlファイルにプッシュされることを意味します。

oracle.portal.wcs.provider.info.DatabaseInformation

この値は、Webクリッピングの定義の格納にはOracle9iデータベース以上が使用され、データベースの接続の詳細はrepositoryInfoタグに子として含まれることを意味します。

mdsConfigLocation

MDS

class属性の値がMDSリポジトリを指定する場合は、mdsConfigLocationタグを使用します。これはMDS構成ファイルmds-config.xmlを指します。

この構成は、実際のMDSの場所を指定するmds-config.xmlファイルを指しています。mds-config.xmlファイルは、次の場所にあります。

ORACLE_HOME\j2ee\OC4J_WebCenter\applications\portalTools\webClipping\WEB-INF

詳細は、例18-11を参照してください。

useASO

データベース

trueまたはfalseに設定します。

  • Webクリッピングとデータベース間の通信チャネルを暗号化するために詳細セキュリティ・オプションを使用する場合は、trueを指定します。これは、クリップされたコンテンツに含まれている大文字小文字の区別があるデータに、追加のセキュリティを導入するために用意されています。

  • このオプションを省略する場合は、falseを指定します。

useRAA

データベース

trueまたはfalseに設定します。

  • データベース接続パラメータへのアクセスにリポジトリ・アクセスAPIが使用される場合は、trueを指定します。trueを指定することは、Webクリッピング・プロデューサでリポジトリとしてデフォルトのOracleASインフラストラクチャ・データベースを使用することに相当します。

    trueを指定すると、他のrepositoryInfo子タグの必要がなくなります。

  • このオプションを省略する場合は、falseを指定します。

databaseHost

データベース

Oracleデータベースのホスト名を指定します。バージョン9i以上のみを使用します。次に例を示します。

mycompany.dbhost.com

databasePort

データベース

Oracleデータベース・リスナーのポート番号を指定します。これは通常1521です。

databaseSid

データベース

Webクリッピング・リポジトリをホスティングするデータベースのOracle SIDを指定します。

databaseUsername

データベース

データベースへのログインに使用するユーザー名を入力します。

databasePassword

データベース

指定したデータベース・ユーザー名のプレーン・テキストのパスワードを入力します。パスワードの前に感嘆符(!)を付け、Webクリッピング・プロデューサが起動と同時にパスワードを暗号化できるようにします。

次に例を示します。

!AX3tR

18.5 Oracle JDeveloperを使用したJPS準拠のポートレットの構築

Oracle JDeveloperでJSR 168 Javaポートレット・ウィザードを使用すると、ポートレットをWSRP 2.0で迅速かつ容易に公開できます。ウィザードではWSRP 1.0とWSRP 2.0の両方がサポートされています。WSRP 2.0ポートレットを作成する場合は、WSRP 2.0の拡張機能のために、ウィザードに追加のページが表示されます。

この項では、次のことを前提にしています。

この項では、JSR 168 Javaポートレット・ウィザードの手順を説明します。最初に、実装するポートレットのモード、および実装メソッド(JSP、HTTPサーブレット、JavaクラスまたはHTML)を選択できます。次に、ウィザードによって、選択したモードごとに簡単なサンプル実装が作成されます。


注意:

この項の図は、Oracle JDeveloperで「ルック・アンド・フィール」の設定を「Windows」にしています。「ルック・アンド・フィール」を「Oracle」に設定した場合は、表示される画面が少し異なりますが、内容および機能は同じです。「ルック・アンド・フィール」設定を変更するには、「ツール」メニューから「プリファレンス」を選択し、次に「環境」を選択します。

JSR 168 Javaポートレット・ウィザードを使用してポートレットを作成する手順は、次のとおりです。

  1. Oracle JDeveloperを起動します。

  2. アプリケーション・ナビゲータで、ポートレットの作成先であるアプリケーションを開きます。

  3. ポートレットの作成先であるプロジェクトを右クリックし、「新規」を選択します。


    注意:

    アプリケーションの作成時にWebCenterアプリケーション・テンプレートを選択した場合、ポートレット・プロジェクトでそのポートレットを作成します。そのようなアプリケーションまたはプロジェクトがまだない場合は、3.1項「WebCenterアプリケーションの作成」を参照してください。

  4. 「新規ギャラリ」で、「Web Tier」カテゴリを開き、「Portlets」を選択します。

  5. 「項目」リストで、図18-5に示すように、「規格に基づいたJavaポートレット(JSR 168)」を選択します。


    注意:

    「Javaポートレット」を選択すると、JPS準拠のポートレットを作成するためのポートレット・ウィザードが開きます。「Oracle PDK Javaポートレット」をクリックすると、PDK-Javaポートレットを作成するためのポートレット・ウィザードが開きます。

    図18-5 「新規ギャラリ」ダイアログ・ボックス

    Web Tierを展開した「新規ギャラリ」ダイアログ・ボックスを表示。
    「図18-5 「新規ギャラリ」ダイアログ・ボックス」の説明

  6. 「OK」をクリックします。JSR 168 Javaポートレット・ウィザードが開きます。

  7. ウィザードの「ようこそ」ページが表示されたら、「次へ」をクリックして、「Webアプリケーション」ページ(図18-6)を表示します。

    図18-6 「Webアプリケーション」ページ

    図18-6の説明が続きます
    「図18-6 「Webアプリケーション」ページ」の説明

  8. プロジェクトの「Webアプリケーション・バージョン」オプションを選択します。Servlet 2.4は、Oracle Application Serverリリース10.1.3以上でのみサポートされています。


    注意:

    プロジェクトにすでにJSPまたはJSF JSPが含まれている場合、「Webアプリケーション・バージョン」はすでに設定されています。その場合は、このページは表示されず、かわりに直接「一般ポートレット・プロパティ」ページに進みます。

  9. 「次へ」をクリックして、「一般ポートレット・プロパティ」ページ(図18-7)を表示します。

    図18-7 「一般ポートレット・プロパティ」ページ

    「一般ポートレット・プロパティ」ページを表示。
    「図18-7 「一般ポートレット・プロパティ」ページ」の説明

  10. 「クラス」フィールドに、ウィザードでポートレットに対して作成するクラスの名前を入力します。表示されているデフォルト名を受け入れることも、独自の名前を指定することもできます。

  11. 「パッケージ」リストで、クラスを格納するパッケージを選択します。「参照」ボタンをクリックして、プロジェクト内でパッケージを見つけます。特定のパッケージを選択しない場合、ウィザードではプロジェクトのデフォルト・パッケージが使用されます。

  12. 「言語」リストで、ポートレットでサポートするデフォルトの言語を選択します。ウィザードでは、デフォルトで英語が使用されます。

  13. 「編集可能」を選択して、編集モードを追加します。ウィザードでは、このオプションがデフォルトで選択されています。

  14. 「Oracle拡張機能を使用してWSRP V2のポートレット間通信を可能にします。」を選択して、このポートレットがOracle WSRP 2拡張機能をサポートすることを指定します。このオプションを選択するとoracle-portlet.xmlファイルが作成され、WSRP 2.0の機能(ナビゲーション・パラメータなど)のために使用されます。WSRP 2.0標準は、ポートレット間の通信(ナビゲーション・パラメータを介す)とポートレット・カスタマイズのエクスポートまたはインポートのサポートを含めることで、WSRP 1.0を拡張します。


    注意:

    Oracleの拡張機能で構築されたJSR 168ポートレットは、WSRP 2.0をサポートするすべてのコンシューマで使用できます。WSRP 2.0を活用するには、ポートレットをOracle Application Serverリリース10.1.3.2にデプロイする必要があります。

  15. 「次へ」をクリックして、「名前と属性」ページ(図18-8)を表示します。

    図18-8 「名前と属性」ページ

    「名前と属性」ページを表示。
    「図18-8 「名前と属性」ページ」の説明

  16. 「表示名」フィールドに、ポートレットの名前を入力します。このポートレット属性は、WebCenterアプリケーションでは使用されませんが、その他のアプリケーションで使用されるポートレットでは役に立つ場合があります。たとえば、OracleAS Portalでは、そのポートレット選択リストで(つまり、ポートレット・リポジトリで)この値を使用します。

  17. 「ポートレット・タイトル」フィールドに、ポートレットのタイトルを入力します。このタイトルは、ポートレットがページ上に現れるときに、ポートレット・ヘッダーに表示されます。

  18. 「短いタイトル」フィールドに、ポートレットのより短いタイトルを入力します。このポートレット属性は、WebCenterアプリケーションでは実装されませんが、その他のアプリケーションで使用されるポートレットでは役に立つ場合があります。たとえば、このポートレットをOracleAS Portalで使用し、ユーザーにモバイル・オプションを提供する場合、ポートレットの短いタイトルを入力して、ポートレットのヘッダーに長いポートレット・タイトルのかわりに表示されるようにします。

  19. 「説明」フィールドに、ポートレットの説明を入力します。このポートレット属性は、WebCenterアプリケーションでは使用されませんが、その他のアプリケーションで使用されるポートレットでは役に立つ場合があります。たとえば、このポートレットをOracleAS Portalで使用する場合、説明はポートレット・リポジトリ内でポートレットの下に表示されます。

  20. 「キーワード」フィールドに、ユーザーが検索でポートレットを見つけやすくするための追加のキーワードを入力します。このポートレット属性は、WebCenterアプリケーションでは実装されませんが、その他のアプリケーションで使用されるポートレットでは役に立つ場合があります。

  21. 「次へ」をクリックして、「コンテンツ・タイプとポートレット・モード」ページ(図18-9)を表示します。

    または、「終了」をクリックし、残りのすべての設定にデフォルト値を使用することで、ポートレットをただちに作成できます。

    図18-9 「コンテンツ・タイプとポートレット・モード」ページ

    「コンテンツ・タイプとポートレット・モード」ページを表示。
    「図18-9 「コンテンツ・タイプとポートレット・モード」ページ」の説明

  22. デフォルトでは、ポートレットにコンテンツ・タイプとして「text/html」が表示されます。他のコンテンツ・タイプを追加する場合は、「text/html」を選択し、「追加」をクリックします。

    使用可能なコンテンツ・タイプのリストが表示されます(図18-10)。「使用可能」リストから希望するコンテンツ・タイプを選択し、矢印ボタンを使用して、それらを「選択済」リストへ移動します。終了したら、「OK」をクリックします。

    図18-10 「コンテンツ・タイプ」ダイアログ・ボックス

    「コンテンツ・タイプ」ダイアログ・ボックスを表示
    「図18-10 「コンテンツ・タイプ」ダイアログ・ボックス」の説明

  23. デフォルトでは、ポートレットに「view」モードが含まれています。「一般ポートレット・プロパティ」ページで「カスタマイズ可能」を選択した場合は、ポートレットに「edit」モードも含まれます。他のポートレット・モードを追加する必要がある場合は、既存のポートレット・モード(たとえば、「view」)をクリックし、「追加」の矢印をクリックします。

    使用可能なポートレット・モードのリストが表示されます(図18-11)。希望するモードを「使用可能」リストから「選択済」リストに移動することで追加できます。終了したら、「OK」をクリックします。ポートレット・モードの詳細は、18.1項「Javaポートレット作成のガイドライン」を参照してください。

    図18-11 「ポートレット・モード」ダイアログ・ボックス

    「ポートレット・モード」ダイアログを表示。
    「図18-11 「ポートレット・モード」ダイアログ・ボックス」の説明

  24. 必要なポートレット・モードをすべて追加した後は、各モードについて実行する機能を選択します。ポートレット・モードごとに、そのポートレット・モードをクリックし、右側のオプションを次のように選択します。

    • JSPの生成: Oracle JDeveloperでそのポートレット・モードに対してJSPを生成する場合に選択します。対応するフィールドにJSPの名前を入力するか、デフォルトを受け入れます。

      ウィザードでの作業を完了すると、生成されたJSPがアプリケーション・ナビゲータに表示され、開発をさらに進めるために選択できます。これは、すべてのポートレット表示モードでのデフォルトの選択です。この選択により、生成されたポートレットJavaクラスにコードが入力され、指定したモードのリクエストが生成されたJSPにルーティングされます。

    • パスへのマップ: ポートレット・モードを既存のWebリソース(ページなど)にマップする場合に選択します。対応するフィールドにパスを入力します。これを選択すると、ターゲットのリソースまたはファイルを自身で書き込む必要があります。ターゲットとしては、たとえば、JSP、サーブレットあるいはHTMLファイルを指定できます。この選択により、生成されたポートレットJavaクラスにコードが入力され、指定したモードのリクエストが指定したターゲットにルーティングされます。

    • カスタム・コード: カスタム・コード・オブジェクトを介して、ポートレット・モードを実装する場合に選択します。このオブジェクトは後から作成します。これを選択するとスケルトン・メソッドが生成され、生成されたポートレットJavaクラス内にコンテンツ(private void do<MODE_NAME><CONTENT_TYPE>)がレンダリングされます。役に立つコンテンツをレンダリングするには、このコードを更新する必要があります。

  25. 「次へ」をクリックします。

    ウィザードの前のステップで「一般プロパティ」ページの「編集可能」を選択した場合、「カスタマイズ・プリファレンス」ページが表示されます(図18-12)。手順26に進んでください。

    このオプションを選択しなかった場合は、「セキュリティ・ロール」ページが表示されます(図18-14)。手順34に進んでください。

    図18-12 「カスタマイズ・プリファレンス」ページ

    「カスタマイズ・プリファレンス」ページを表示。
    「図18-12 「カスタマイズ・プリファレンス」ページ」の説明

  26. 他のカスタマイズ・プリファレンスを追加する場合は、「追加」をクリックします。「新規プリファレンスの追加」ダイアログ・ボックスが表示されます(図18-13)。

    図18-13 「新規プリファレンスの追加」ダイアログ・ボックス

    「新規プリファレンスの追加」ダイアログ・ボックスを表示。
    「図18-13 「新規プリファレンスの追加」ダイアログ・ボックス」の説明

  27. 「名前」フィールドに、新規カスタマイズ・プリファレンスの名前を入力します。名前は、そのポートレット内で一意のものを指定する必要があります。文字、数字およびアンダースコアのみを使用します。

  28. 「デフォルト値」フィールドに、新規カスタマイズ・プリファレンス用の1つ以上のデフォルト値を入力します。複数の値はカンマで区切ります。

  29. カスタマイズ・プリファレンス値を翻訳する必要がある場合は、「翻訳」チェック・ボックスを選択します。このオプションを選択すると、Oracle JDeveloperでは、翻訳できる文字列でリソース・バンドル・クラスが生成されます。実行時に、ポートレットはリソース・バンドルのエントリを参照します。


    注意:

    名前は常に翻訳されますが、デフォルト値は必ずしも翻訳する必要はありません。たとえば、値が整数の場合、翻訳は不要です。

  30. 「OK」をクリックします。さらにカスタマイズ・プリファレンスを追加する場合は、これまでの手順を繰り返してください。

  31. 既存のカスタマイズ・プリファレンスの詳細を編集するには、「ポートレット・プリファレンス」リストでプリファレンスを選択し、「プリファレンス詳細」セクションでフィールドを編集します。

  32. 既存のカスタマイズ・プリファレンスを削除するには、「ポートレット・プリファレンス」リストでプリファレンスを選択し、「削除」をクリックします。

  33. 「次へ」をクリックして、「セキュリティ・ロール」ページ(図18-14)を表示します。

    図18-14 「セキュリティ・ロール」ページ

    「セキュリティ・ロール」ページを表示。
    「図18-14 「セキュリティ・ロール」ページ」の説明

  34. JSR 168ポートレットでは、web.xmlで定義され、portlet.xmlで参照されるJ2EEセキュリティ・ロールを使用できます。「使用可能」リストには、ポートレット・アプリケーションのWebデプロイ・ファイル(web.xml)で定義されているセキュリティ・ロールが表示されます。セキュリティ・ロールを「使用可能」リストから「選択済」リストに移動すると、アプリケーションのポートレット・デプロイ・ファイル(portlet.xml)にそのセキュリティ・ロールの参照が作成され、これがweb.xml内のセキュリティ・ロールを参照します。

  35. 新規のセキュリティ・ロールを定義する場合、「新規セキュリティ・ロール」をクリックします。「新規セキュリティ・ロールの作成」ダイアログ・ボックスが表示されます(図18-15)。

    図18-15 「新規セキュリティ・ロールの作成」ダイアログ・ボックス

    図18-15の説明が続きます
    「図18-15 「新規セキュリティ・ロールの作成」ダイアログ・ボックスの説明"

  36. 「名前」フィールドに、セキュリティ・ロールの一意の名前を入力します。

  37. 「説明」フィールドに、このセキュリティ・ロールがポートレットに対して持つアクセスの権限や制限について説明する、セキュリティ・ロールの説明を入力します。

  38. 「OK」をクリックします。

    新しいセキュリティ・ロールが「使用可能」リストに追加されます。セキュリティ・ロールは、10.2項「アプリケーションのセキュリティの設定」で説明しているように、手動で作成することもできます。

  39. 「次へ」をクリックして、「キャッシュ」ページ(図18-16)を表示します。

    図18-16 「キャッシュ」ページ

    「キャッシュ」ページを表示。
    「図18-16 「キャッシュ」ページ」の説明

  40. ポートレット用のキャッシュを有効にする場合、「キャッシュ・ポートレット」を選択します。

    このオプションを選択することにより、ポートレット・キャッシュがポートレット・コンテナによって管理されることを指定します。ポートレット自体で、指定のレスポンスのコンテンツをキャッシュすることもできます。このページで指定する設定は、レスポンスに対するキャッシュ条件がポートレットで指定されていない場合にのみ適用されます。

  41. 「デフォルト失効条件」セクションで、次のいずれかのオプションを選択します。

    • キャッシュ・コンテンツ有効期限(秒): キャッシュされたポートレット・コンテンツを、一定の時間が経つと期限切れになるようにする場合。期限は隣のフィールドで指定します。

    • キャッシュ・コンテンツ無期限: キャッシュされたポートレット・コンテンツが期限切れにならないようにする場合。ポートレットに変更する見込みのない静的コンテンツが含まれている場合、このオプションを選択できます。


    注意:

    ポートレットについてデフォルトでキャッシュしない場合は、「デフォルトでキャッシュしない」を選択します。この場合、ウィザードではキャッシュ有効期限が0秒に設定されます。前述したとおり、このキャッシュ設定が有効となるのは、レスポンスに対するキャッシュ条件がポートレットで指定されていない場合のみです。

    ここでキャッシュしないように設定し、後で、ポートレットについてデフォルトでキャッシュする必要が生じた場合は、簡単に変更できます。変更するには、ウィザードで生成したportlet.xmlファイルのキャッシュ有効期限の値を、0より大きい数字に指定します。


  42. 「次へ」をクリックして、「初期化パラメータ」ページ(図18-17)を表示します。

    図18-17 「初期化パラメータ」ページ

    「初期化パラメータ」ページを表示。
    「図18-17 「初期化パラメータ」ページ」の説明

  43. 初期化パラメータによって、.warファイルの内容を決定するWebアプリケーション開発者が指定されます。このファイルは、JNDI変数のかわりに、Webアプリケーション(サーブレットやポートレット)のすべてのコンポーネントの動作を互換性のある方法で構成するために使用します。これらの初期化パラメータは、portlet.xmlファイルに追加されます。

    初期化パラメータを追加する場合は、「新」をクリックします。これにより、パラメータの表に新しい行が追加されます。その行をダブルクリックすれば、詳細を編集できます。

  44. 「名前」フィールドに、初期化パラメータの一意の名前を入力します。文字、数字およびアンダースコアのみを使用します。

  45. 「値」フィールドに、パラメータのデフォルト値を入力します。

  46. 「説明」フィールドに、パラメータの説明を入力します。

  47. 初期化パラメータを削除するには、パラメータの表でそのパラメータを選択し、「削除」をクリックします。

  48. 「次へ」をクリックして、「ポートレット・ナビゲーション・パラメータ」ページ(図18-18)を表示します。

    図18-18 「ポートレット・ナビゲーション・パラメータ」ページ

    図18-18の説明が続きます
    「図18-18 「ポートレット・ナビゲーション・パラメータ」ページ」の説明

    ポートレット・ナビゲーション・パラメータについては、19.1.2項「ナビゲーション・パラメータの実装(WSRP 2.0)」を参照してください。

  49. 「次へ」をクリックして、「終了」を表示します。

  50. 「終了」をクリックすると、ポートレット用のファイルが生成されます。アプリケーション・ナビゲータでプロジェクト・ノードに対して、次のファイルが生成されます(図18-19を参照)。

    • ポートレット・モードに「JSPの生成」を選択した場合、モードごとにコードが生成されます。

      「カスタム・コード」を選択した場合、そのコードはポートレットのJavaクラスに属すことになります。

    • 2つのJavaクラス

      • <packagename>.<portletname>.javaは、ポートレット・コンテナによって起動され、ポートレット標準で必要なメソッドがすべて含まれています。

      • <packagename>.<portletname>Bundle.javaには、ポートレット用の翻訳文字列がすべて含まれています。

    • portlet.xml

    • oracle-portlet.xml

    • web.xml

    図18-19 JPS準拠のポートレット用に生成されたファイルの例

    「アプリケーション - ナビゲータ」の内容を表示。
    「図18-19 JPS準拠のポートレット用に生成されたファイルの例」の説明

次のステップでは、独自のポートレット・ロジックをポートレットに追加して、希望する機能を一層します。18.8項「ポートレット・ロジックの追加」を参照してください。

18.6 PDK-Javaの概要

PDK-Javaは、一般的に必要なユーティリティを提供することでJavaポートレットを簡単に開発できるフレームワークを提供し、これまでの開発スキルや、JSP、サーブレット、静的HTMLページなどの既存アプリケーション・コンポーネントを活用できるようにします。また、Oracle WebCenter Frameworkとプロデューサ間の通信の複雑さに直接対処する必要なしにポートレットを作成できます。

PDK-Javaのフレームワークは次の領域に分けられます。

PDK-Javaポートレットのガイドライン

Oracle WebCenter Frameworkでは、PDK-Javaポートレットは、OracleAS Portalの場合とはいくぶん異なる働きをします。そのため、Oracle WebCenter FrameworkでPDK-Javaポートレットを作成する際、次の新しい設計上の検討事項を認識しておく必要があります。

18.7 Oracle JDeveloperを使用したPDK-Javaポートレットの構築

Oracle JDeveloperでJavaポートレット・ウィザードを使用することで、ポートレットの開発を迅速かつ容易に開始できます。

この項では、次のことを前提にしています。

この項では、Javaポートレット・ウィザードの手順を説明します。最初に、実装するポートレットのモード、および実装メソッド(JSP、HTTPサーブレット、JavaクラスまたはHTML)を選択できます。次に、ウィザードによって、選択したモードごとに簡単なサンプル実装が作成されます。


注意:

この項の図は、Oracle JDeveloperで「ルック・アンド・フィール」の設定を「Windows」にしています。「ルック・アンド・フィール」を「Oracle」に設定した場合は、表示される画面が少し異なりますが、内容および機能は同じです。「ルック・アンド・フィール」設定を変更するには、「ツール」メニューから「プリファレンス」を選択し、次に「環境」を選択します。

ポートレットおよびプロデューサを作成する手順は、次のとおりです。

  1. Oracle JDeveloperを起動します。

  2. アプリケーション・ナビゲータで、ポートレットの作成先であるアプリケーションを開きます。

  3. ポートレットの作成先であるプロジェクトを右クリックし、「新規」を選択します。


    注意:

    そのようなアプリケーションまたはプロジェクトがまだない場合は、3.1項「WebCenterアプリケーションの作成」を参照してください。

  4. 「新規ギャラリ」で、「Web Tier」カテゴリを開き、「Portlets」を選択します。

  5. 「項目」リストで、図18-20に示すように、「Oracle PDK Javaポートレット」をクリックします。


    注意:

    「Javaポートレット」を選択すると、JPS準拠のポートレットを作成するためのポートレット・ウィザードが開きます。「Oracle PDK Javaポートレット」を選択すると、PDK-Javaポートレットを作成するためのポートレット・ウィザードが開きます。

    図18-20 Oracle PDK Javaポートレットの「新規ギャラリ」ダイアログ・ボックス

    Web Tierを展開した「新規ギャラリ」ダイアログ・ボックスを表示。
    「図18-20 Oracle PDK Javaポートレットの「新規ギャラリ」ダイアログ・ボックス」の説明

  6. 「OK」をクリックします。Javaポートレット・ウィザードが表示されます。

  7. ウィザードの「ようこそ」ページが表示されたら、「次へ」をクリックして、「Webアプリケーション」ページ(図18-6)を表示します。

  8. プロジェクトの「Webアプリケーション・バージョン」オプションを選択します。


    注意:

    プロジェクトにすでにJSPまたはJSF JSPが含まれている場合、「Webアプリケーション・バージョン」はすでに設定されています。その場合は、このページは表示されず、かわりに直接「一般ポートレット・プロパティ」ページに進みます。

  9. 「次へ」をクリックして、「ポートレットの説明」ページ(図18-21)を表示します。

    図18-21 「ポートレットの説明」ページ

    「ポートレットの説明」ページを表示。
    「図18-21 「ポートレット説明」ページ」の説明

  10. 「ポートレット名」フィールドに、ポートレットの意味のある名前を入力します。この名前は内部的に使用されるため。ユーザーには見えません。

  11. 「表示名」フィールドに、ポートレットの表示名を入力します。この名前は、ポートレットの選択リスト(コンポーネント・パレットなど)に表示され、ユーザーはページに追加するポートレットを選択します。

  12. 「説明」フィールドに、ポートレットの説明を入力します。


    注意:

    このポートレット属性は、WebCenterアプリケーションでは実装されませんが、その他のアプリケーションで使用されるポートレットでは役に立つ場合があります。たとえば、このポートレットをOracleAS Portalで使用する場合、説明はポートレット・リポジトリ内でポートレットの下に表示されます。

  13. 「タイムアウト」フィールドに、ポートレットのレンダリングに与えられる秒数を入力します。

  14. 「タイムアウト・メッセージ」フィールドに、ポートレットのレンダリングが指定したタイムアウト値を超えてしまった場合に表示されるメッセージを入力します。

  15. 「次へ」をクリックして、ポートレット・モードのページ(図18-22)を表示します。

    図18-22 ポートレット・モードのページ

    「表示モード」ページを表示。
    「図18-22 ポートレット・モードのページ」の説明

  16. 「ページを表示」の下で、「実装スタイル」リストから共有画面のための実装スタイルを選択します。

    • ファイル名: ポートレットの共有画面モードをJavaServer Pageとして実装する場合に選択します。「ファイル名」フィールドに、ウィザードによって生成されるファイルの名前を入力します。

    • HTTPサーブレット: ポートレットの共有画面モードをHTTPサーブレットとして実装する場合に選択します。「パッケージ名」フィールドに、HTTPサーブレットを格納するパッケージの名前を入力します。「クラス名」フィールドに、ポートレットの共有画面モードとともに参照されるJavaクラスを入力します。

    • HTMLファイル: ポートレットの共有画面モードをHTMLファイルとして実装する場合に選択します。「ファイル名」フィールドに、ウィザードによって生成されるファイルの名前を入力します。「HTMLファイル」を選択すると、provider.xmlファイルの<renderer>要素内に、次の行が追加されます。

      <showPage class="oracle.portal.provider.v2.render.http.ResourceRenderer">
          <resourcePath>/hub_inside/index.html</resourcePath>
          <contentType>text/html</contentType>
          <charSet>UTF-8</charSet>
       </showPage>
      

      <charSet>は、HTMLページのエンコードに使用するキャラクタ・セットをプロデューサに指示します。ウィザードによって指定されているデフォルトのキャラクタ・セットはUTF-8です。UTF-8以外のキャラクタ・セット・エンコーディングが必要な場合は、provider.xmlのこの要素を適宜更新する必要があります。

    • Javaクラス: ポートレットの共有画面モードをJavaクラスとして実装する場合に選択します。「パッケージ名」フィールドに、Javaクラスを格納するパッケージの名前を入力します。「クラス名」フィールドに、Javaクラスの名前を入力します。

    共有画面の詳細は、18.1.1.1項「共有画面モード(JSPの場合は表示モード)」を参照してください。

  17. ポートレットに全画面モードを実装する場合は、「詳細を表示」ページを選択し、「ページを表示」で説明した実装スタイルを選択します。

    全画面モードの詳細は、18.1.1.5項「全画面モード(PDK-Java)」を参照してください。

  18. 「次へ」をクリックして、「カスタマイズ・モード」ページを表示します(図18-23)を表示します。

    図18-23 「カスタマイズ・モード」ページ

    「カスタマイズ・モード」ページを表示。
    「図18-23 「カスタマイズ・モード」ページ」の説明

  19. デフォルトでは「編集」ページが選択されています。ポートレットに編集モードを実装する場合は、「ページを表示」で説明したように実装スタイルを選択します。編集モードを実装しない場合は、「編集」ページのチェック・ボックスの選択を解除します。

    編集モードの詳細は、18.1.1.2項「編集モード(JPSおよびPDK-Java)」を参照してください。

  20. ポートレットに編集モードを実装する場合は、「デフォルトの編集」ページを選択し、「ページを表示」で説明したように実装スタイルを選択します。

    デフォルトの編集モードの詳細は、18.1.1.3項「デフォルトの編集モード(JPSおよびPDK-Java)」を参照してください。

  21. 「次へ」をクリックして、「追加モード」ページを表示します(図18-24)を表示します。

    図18-24 「追加モード」ページ

    「追加モード」ページを表示。
    「図18-24 「追加モード」ページ」の説明

  22. ポートレットにヘルプ・モードを実装する場合は、「ヘルプ」ページを選択し、「ページを表示」で説明したように実装スタイルを選択します。

    ヘルプ・モードの詳細は、18.1.1.6項「ヘルプ・モード(JPSおよびPDK-Java)」を参照してください。

  23. ポートレットに情報モードを実装する場合は、「情報」ページを選択し、「ページを表示」で説明したように実装スタイルを選択します。

    情報モードの詳細は、18.1.1.7項「情報モード(JPSおよびPDK-Java)」を参照してください。

  24. 「次へ」をクリックして、「パブリック・ポートレット・パラメータ」ページ(図18-25)を表示します。

    図18-25 「パブリック・ポートレット・パラメータ」ページ

    「パブリック・ポートレット・パラメータ」ページを表示。
    「図18-25 「パブリック・ポートレット・パラメータ」ページ」の説明

  25. ポートレットにパブリック・パラメータを追加する場合は、「追加」をクリックして、パラメータの詳細を入力するための空の行を作成します。パラメータの使用方法の詳細は、19.2.2項「パラメータの引渡しとイベントの送信」を参照してください。

  26. 「名前」フィールドに、パラメータの内部名(たとえば、MyParam)を入力します。

  27. 「表示名」フィールドに、ユーザーに表示される名前(たとえば、My Portlet Parameter)を入力します。

  28. 「説明」フィールドに、パラメータの説明情報を入力します。

  29. 「次へ」をクリックして、「パブリック・ポートレット・イベント」ページ(図18-26)を表示します。

    図18-26 「パブリック・ポートレット・イベント」ページ

    「パブリック・ポートレット・イベント」ページを表示。
    「図18-26 「パブリック・ポートレット・イベント」ページ」の説明

  30. イベントの使用方法の詳細は、19.2.2項「パラメータの引渡しとイベントの送信」を参照してください。

  31. 「次へ」をクリックして、「プロデューサの説明」ページ(図18-27)を表示します。

    図18-27 「プロデューサの説明」ページ

    「プロデューサの説明」ページを表示。
    「図18-27 「プロデューサの説明」ページ」の説明

  32. 「プロデューサ名」フィールドに、プロデューサの名前を入力します。

  33. 「デプロイ・プロパティ・ファイルの生成」を選択し、次の2つの.propertiesファイルを生成します。

    • <serviceID>.propertiesは、そのサービスIDを持つプロデューサのプロパティを定義します。サービスIDは、プロデューサ名と同じ値です。

    • _default.propertiesは、デフォルトのプロパティ・ファイルです。プロデューサWebアプリケーションは複数のプロデューサを持つ場合があり、それぞれに独自のサービスIDがあります。登録時に、サービスIDが定義されていない場合は、デフォルトのプロパティ・ファイルが使用されます。

  34. プロデューサのprovider.xmlファイルを自動的に生成するには、「XMLエントリの生成」を選択します。これはプロデューサ定義ファイルで、そのプロデューサに属するポートレット(ウィザードによって生成されたポートレットも含む)の詳細が含まれています。

  35. index.jspファイルを自動的に生成するには、「索引JSPの生成」を選択します。このファイルには、Webアプリケーションに存在するすべてのプロデューサがハイパー・リンクとともに記載されており、簡単にプロデューサ・テスト・ページにアクセスできるようになっています。

  36. 「終了」をクリックすると、ポートレット用のファイルが生成されます。アプリケーション・ナビゲータでプロジェクトに対して次のファイルが生成されます(図18-28を参照)。

    • 選択した各ポートレット・モード用のファイル

    • provider.xml

    • web.xml

    • index.jsp

    • _default.properties

    • <serviceID>.properties

    これらすべてのファイルは、ポートレットを正常にデプロイして実行するために必要です。ただし、index.jspはOracle JDeveloperでテスト用に使用されます。

    図18-28 アプリケーション・ナビゲータ

    アプリケーション・ナビゲータの内容を表示。
    「図18-28 アプリケーション・ナビゲータ」の説明

18.8 ポートレット・ロジックの追加

ポートレットのデフォルト実装を作成した後は、独自のビジネス・ロジックを追加してサンプル・コードを拡張し、必要な機能を実装できます。機能の追加方法の詳細は、JPSまたはJavaDocを参照してください。具体的な例は、『Oracle WebCenter Frameworkチュートリアル』の「最初のポートレットの構築およびテスト」の「手順7: ポートレットへの簡単なロジックの追加」を参照してください。

18.9 アプリケーション・サーバーへのポートレットのデプロイ

ウィザードを終了してポートレットを生成した後は、そのポートレットをアプリケーション・サーバーにデプロイできます。

JPS準拠のポートレットを作成した場合は、そのポートレットを、ウィザードを使用してベンダーのJPS準拠のコンテナにデプロイできます。18.9.1項「JPS準拠WebCenterアプリケーション・ポートレットのデプロイ」の手順は、JPS準拠のポートレットをOC4J上で実行されているOracleのWSRPコンテナにデプロイする方法を示しています。PDK-Javaポートレットを作成した場合は、それをOC4Jにデプロイできます。


注意:

WSRPポートレットは、ホーム・インスタンスへではなく、Oracle Application Server内のOC4J_Webcenterインスタンスにデプロイする必要があります。

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

18.9.1 JPS準拠WebCenterアプリケーション・ポートレットのデプロイ

この項では、Oracle JDeveloperを使用して作成したJPS準拠のWebCenterアプリケーション・ポートレットをデプロイする手順について説明します。WARデプロイメント・プロファイルを作成し、OC4Jにデプロイする必要があります。

WARファイルを作成してデプロイする手順は、次のとおりです。

  1. 構成済OC4Jインスタンスに対する接続が存在することを確認します。構成済OC4Jを起動するには、「ツール」に移動し、「WebCenter Preconfigured OC4Jの起動」を選択します。


    注意:

    スタンドアロンOC4Jインスタンスを使用する場合は、インスタンスへの接続の作成方法について、12.2.6.2.1項「スタンドアロンOC4Jの接続詳細の定義」を参照してください。

    構成済OC4Jインスタンスを停止するには、「ツール」に移動し、「WebCenter Preconfigured OC4Jの停止」を選択します。

  2. 構成済OC4Jにreadmeファイルで説明されているように接続します。このファイルを開くには、「ヘルプ」に移動し、「WebCenter Preconfigured OC4J READMEを開く」を選択します。

  3. アプリケーション・ナビゲータで、ポートレットを含むプロジェクトを右クリックし、「新規」を選択します。

  4. 「新規ギャラリ」で、「General」カテゴリを開き、「Deployment Profiles」を選択します。

  5. 「項目」リストで「WARファイル」を選択します。

  6. 「OK」をクリックして、「デプロイメント・プロファイルの作成」ダイアログ・ボックスを表示します。

  7. 「デプロイメント・プロファイル名」フィールドに、デプロイメント・プロファイルの意味のある名前を入力します。

  8. 「ディレクトリ名」フィールドに、デプロイメント・プロファイルの場所を入力します。デフォルトの場所を受け入れることも、独自の場所を指定することもできます。

  9. 「OK」をクリックします。これでデプロイメント・プロファイルが作成されました。

  10. アプリケーション・ナビゲータで、「リソース」ノードを開き、.deployファイルをダブルクリックして、「WARデプロイメント・プロファイルのプロパティ」ダイアログ・ボックスを表示します。

  11. 「Webアプリケーションのコンテキスト・ルート」の下で、「J2EE Webコンテキスト・ルートを指定」を選択し、対応するフィールドにJ2EEコンテキスト・ルートを入力します。

  12. 「OK」をクリックします。

  13. 新規に作成されたデプロイメント・プロファイルを右クリックし、「配布先」を選択して、ポートレットのデプロイ先のアプリケーション・サーバー接続を選択します。

    デプロイメント・タイプの選択ダイアログ・ボックスが表示されます(図18-29)。


    注意:

    デプロイメント・タイプの選択ダイアログ・ボックスは、先にEARファイルにデプロイ・オプションを選択した場合にのみ表示されます。Oracle Application Server 10.1.3.2.0インスタンスにデプロイする場合は「はい」を選択し、Oracle Application Server 10.1.2.0.2インスタンスにデプロイする場合は「いいえ」を選択します。

    図18-29 デプロイメント・タイプの選択

    図18-29の説明が続きます
    「図18-29 デプロイメント・タイプの選択」の説明

    Oracleポートレット・コンテナで、WSRPプロトコルを介してJSR 168ポートレットを公開します。ポートレットをWebサービスとしてアクセス可能にするには、ポートレット・アプリケーションにWebサービス・ディスクリプタ・ドキュメント、つまりWSDLドキュメントが含まれている必要があります。このダイアログ・ボックスは、Webサービス・ディスクリプタ・ドキュメント(WSDLドキュメント)が、EARファイルとしてアプリケーションがパッケージ化されるときに、ポートレット・アプリケーションに挿入されることを指定するために使用します。

    ポートレット・コンテナのタイプおよびバージョンに応じて、次のように「はい」または「いいえ」を選択します。

    • Oracleポートレット・コンテナ(Oracle Application ServerまたはOC4J)のリリース10.1.3.1、10.1.3.2: 「はい」を選択して、WSDLドキュメントをポートレット・アプリケーションに挿入します。

    • Oracleポートレット・コンテナのリリース10.1.2、10.1.2.0.2: 「いいえ」を選択して、ポートレット・アプリケーションにWSDLドキュメントを挿入しません。Oracle Application Serverリリース10.1.3で提供されるポートレット・コンテナには、デプロイされたアプリケーションにWSDLドキュメントを自動的に挿入するデプロイメント・サーブレットが含まれています。

    • サード・パーティのポートレット・コンテナ: 「いいえ」を選択して、ポートレット・アプリケーションにWSDLドキュメントを挿入しません。

    「次回このダイアログは表示せずに、今後のデプロイにはここで選択したオプションを使用してください」オプションを選択し、今後デプロイメント・タイプの選択ダイアログ・ボックスが表示されないようにします。前のオプション(「はい」または「いいえ」)が、このアプリケーションからのJSR 168ポートレットの今後のデプロイで使用されます。この設定を変更するには、デプロイメント・プロファイルを削除し、再作成します。デプロイメント・タイプの選択ダイアログ・ボックスが開いたら、希望する設定を選択します。

  14. WSDLドキュメントをポートレット・アプリケーションに挿入するには、「はい」オプションを選択し、ポートレット・アプリケーションがまだ選択されていない場合は、「OK」をクリックします。デプロイ - ログ・ウィンドウに、アプリケーションのパッケージ化およびデプロイ・ステータスが表示されます(図18-30)。

    図18-30 デプロイ - ログ

    図18-30の説明が続きます
    「図18-30 デプロイ - ログ」の説明

  15. 「アプリケーションの構成」ダイアログでは、コンテナ構成ファイル(orion-web.xmlなど)に固有の設定を入力できます。通常は、「OK」をクリックしてデフォルト値をそのまま使用します。

  16. Oracle JDeveloperの下部にある「デプロイ - ログ」に「---- デプロイが終了 ----」メッセージが表示されたときは、エラーが発生していないことを確認します。ただし、次のエラー・メッセージを安全に無視することができます。

    006-11-30 08:14:25.627 WARNING J2EE DEP-00002 There are multiple mappings for
    servlet name: WSRPServiceDescriptionService, but only the first one
    (/portlets/WSRPServiceDescriptionService) will be considered for webservice
    endpoint.
    

ポートレット・コンテナにポートレットを再度デプロイすると、プロデューサとそのすべてのコンシューマの間で持たれている既存のセッションがすべて失われます。コンシューマが既存のプロデューサ・セッションを再利用しようとする場合、コンシューマが再デプロイ後初めてプロデューサに接続しようとすると、エラー・メッセージが表示されることがあります。

Error: Could not get markup. The cookie or session is invalid or there is a runtime exception.

プロデューサのセッションを再確立するには、ページをリフレッシュします。新しいブラウザ・セッションからポートレットに再アクセスする場合は、このエラー・メッセージは表示されません。自動的に新しいプロデューサ・セッションが確立されるためです。

18.9.2 PDK-Javaポートレットのデプロイ

この項では、Oracle JDeveloperを使用して作成したPDK-Javaポートレットをデプロイする手順について説明します。WARデプロイメント・プロファイルを作成し、OC4Jにデプロイする必要があります。

WARファイルを作成してデプロイする手順は、次のとおりです。

  1. 構成済OC4Jインスタンスに対する接続が存在することを確認します。構成済OC4Jを起動するには、「ツール」に移動し、「WebCenter Preconfigured OC4Jの起動」を選択します。


    注意:

    スタンドアロンOC4Jインスタンスを使用する場合は、インスタンスへの接続の作成方法について、12.2.6.2.1項「スタンドアロンOC4Jの接続詳細の定義」を参照してください。

    構成済OC4Jインスタンスを停止するには、「ツール」に移動し、「WebCenter Preconfigured OC4Jの停止」を選択します。

  2. 構成済OC4Jにreadmeファイルで説明されているように接続します。このファイルを開くには、「ヘルプ」に移動し、「WebCenter Preconfigured OC4J READMEを開く」を選択します。

  3. アプリケーション・ナビゲータで、ポートレットを含むプロジェクトを右クリックし、「新規」を選択します。

  4. 「カテゴリ」リストで、「General」カテゴリを開き、「Deployment Profiles」をクリックします。

  5. 「項目」リストで「WARファイル」をクリックします。

  6. 「OK」をクリックします。

  7. 「デプロイメント・プロファイルの作成」ダイアログ・ボックスで、名前を意味のわかるものに変更します(たとえばmyj2eeportlet1.deploy)。

  8. 「OK」をクリックします。

  9. 「WARデプロイメント・プロファイルのプロパティ」ダイアログ・ボックスで次の手順を実行します。

    1. 「J2EE Webコンテキスト・ルートを指定」をクリックし、myj2eeportlet1を入力します。

    2. 左側のペインで、「コントリビュータ」を選択します。

    3. ポートレット開発を選択します。

    4. 「OK」をクリックします。

  10. 「ファイル」を選択し、「すべて保存」を選択します。

  11. 「リソース」ノードを開き、デプロイ・プロファイル(たとえばmyj2eeportlet1.deploy)を右クリックして、「配布先」を選択し、アプリケーション・サーバー接続(たとえばPDKJavaOC4J)を選択します。

  12. 「アプリケーションの構成」ダイアログ・ボックスでは、コンテナ構成ファイル(orion-web.xmlなど)に固有の設定を入力できます。通常は、「OK」をクリックしてデフォルト値をそのまま使用します。

  13. Oracle JDeveloperの下部にある「デプロイ - ログ」に「---- デプロイが終了 ----」メッセージが表示されたときは、エラーが発生していないことを確認します。

  14. 次のようにテストに必要なURLを構成し、ポートレットを登録します。

    http://host:port/context-root/providers
    

    hostは、プロバイダがデプロイされているサーバーです。

    portは、OracleAS Web Cache HTTPリスナーのポートです。Application Server Controlコンソールのメイン・ページの「ポート」タブにあります。

    context-rootは、Webアプリケーションのコンテキスト・ルートです。「WARデプロイメント・プロファイルのプロパティ」の「一般」にあります。

  15. これまでの手順で構成したURLをブラウザに入力して、ポートレットが正常にデプロイされたことを確認します。


注意:

ポートレットをスタンドアロンOC4Jまたはサード・パーティ・コンテナにデプロイしている場合、共有ライブラリについて、次のいずれかの方法を使用してJARをコピーする必要があります。
  • 10.1.3.2 WebCenterインストールからJARをコピーします。

  • 構成済OC4JをOTNの「Portal PDK」ページからダウンロードします(共有ライブラリにこれらのJARが含まれます)。

  • 10.1.3.2 JDeveloper Studio EditionからこれらのJARを取得します。

構成済OC4JをApplication Server 10.1.3.2インストールのWebCenterインスタンスで使用する場合、共有ライブラリはすでに使用可能になっています。oracle.portalとして参照されます。


18.9.3 サードバーティのJPS準拠ポートレットのデプロイ

この項では、サード・パーティのJPS準拠ポートレットをOC4Jにデプロイする手順について説明します。

サード・パーティのポートレットをデプロイする手順は、次のとおりです。

  1. サード・パーティのJSR 168ポートレット・プロデューサEARファイルを取得します。

  2. JSR 168ポートレット・プロデューサEARファイルをWSRP EARファイルに変換します。変換の手順は、「JSR 168ポートレット・プロデューサEARファイルのWSRP EARファイルへの変換」で説明しています。

  3. WSRP EARファイルをデプロイします。WSRP EARファイルをデプロイする手順は、12.2.3項「Application Server Controlコンソールを使用したWebCenterアプリケーションのデプロイ」で説明している手順と似ています。

JSR 168ポートレット・プロデューサEARファイルのWSRP EARファイルへの変換

JSR-168ポートレットをWSRP Oracleポートレット・コンテナにデプロイする場合、ポートレット・アプリケーションEARファイルは、必要なWSDLドキュメントを含むWSRPアプリケーションに変換する必要があります。JSR 168ポートレット・プロデューサEARファイルをWSRP EARファイルに変換するには、JDEV_HOME/adfp/libディレクトリにあるWSRPプロデューサ・デプロイ前ツールを実行します。

java -jar wsrp-predeploy.jar <source EAR> <targeted EAR>

wsrp-predeploy.jarも、ORACLE_HOME/j2ee/OC4J_WebCenter/shared-lib/oracle.wsrp/1.0にあります。

サーブレット・バージョン2.3で開発されたJPS準拠ポートレットの場合、次のコマンドを使用してWebプロキシを指定する必要があります。

java -Dhttp.proxyHost=<proxy host> -Dhttp.proxyPort=<proxy port> -jar
wsrp-predeploy.jar <Source EAR file> <Targeted EAR file>

これらの意味は、次のとおりです。

proxy hostは、プロデューザがデプロイされているサーバーです。

proxy portは、HTTPリスナー・ポートです。

wsrp-predeploy.jarは、JDEV_HOME/adfp/libディレクトリまたはORACLE_HOME/j2ee/OC4J_Webcenter/shared-lib/oracle.wsrp/1.0ディレクトリにあります。

source EARファイルは、JSR 168 EARファイルの名前です。

targeted EARファイルは、作成する新しいEARファイルの名前です。ターゲットのEARファイルのファイル名が指定されていない場合、WSRP-<source EAR>という新しいEARファイルが作成されます。

次の例では、Webプロキシが指定されています。

java -Dhttp.proxyHost=myhttpproxy.com -Dhttp.proxyPort=80 -jar wsrp-predeploy.jar wsrp-samples.ear

この例では、WSRP-wsrp-samples.earが作成されます。

18.9.4 JPS準拠ポートレットおよびプロデューサの検証

作成したJPS準拠ポートレットおよびプロデューサをテストすることで、構成をチェックし、ポートレットとそのプロデューサが正しく動作することを確認できます。WSRPポートレットおよびプロデューサをテストするには、ブラウザで次の構文のプロデューサURLを実行します。

http://<host>:<port>/<context-root>/info

これらの意味は、次のとおりです。

  • hostは、プロデューザがデプロイされているサーバーです。

  • portは、HTTPリスナー・ポートです(インスタンス用に作成されたdefault-web-site.xml Webサイト構成ファイルで設定)。

  • context-rootは、Webアプリケーションのコンテキスト・ルートです。

図18-31に似たテスト・ページが表示されます。

図18-31 WSRPプロデューサ・テスト・ページ

図18-31の説明が続きます
「図18-31 WSRPプロデューサ・テスト・ページ」の説明


注意:

この手順は、テスト目的でのみ実行します。この手順を実行した後も、18.10項「ポートレットの登録と表示」で説明しているように、プロデューサを登録する必要があります。

テスト・ページを無効にするには、「WSRPテスト・ページの無効化」の手順を参照してください。

18.9.5 PDK-Javaポートレットおよびプロデューサの検証

ポートレットをデプロイした後は、構成をチェックして、ポートレットとそのプロデューサが正しく動作することを確認する必要があります。


注意:

この手順は、テスト目的でのみ実行します。この手順を実行した後も、18.10項「ポートレットの登録と表示」で説明しているように、プロデューサを登録する必要があります。

ポートレットおよびプロデューサを検証する手順は、次のとおりです。

  1. アプリケーション・ナビゲータで、ポートレットを含むプロジェクトの下にあるindex.jspを右クリックし、「実行」を選択します。

    ブラウザが開き、図18-32に示すようなページが表示されます。

    図18-32 ポートレット・アプリケーション・テスト・ページ

    ポートレット・アプリケーション・テスト・ページを表示。
    「図18-32 ポートレット・アプリケーション・テスト・ページ」の説明

  2. 「サービス名」の下にあるリンクをクリックします。ブラウザが開き、図18-33に示すようなページが表示されます。プロデューサを登録する次のタスクでは、このページに表示されるURLが必要になることに注意してください。

    図18-33 プロデューサ・テスト・ページ

    プロバイダ・テスト・ページを表示。
    「図18-33 プロデューサ・テスト・ページ」の説明

    または、ポートレットのURLを入力して、ポートレットが機能していることをチェックします。URは、次のような構成です。

    http://host:port/context-root/providers/producer_name
    

    これらの意味は、次のとおりです。

    • hostは、プロデューザがデプロイされているサーバーです。

    • portは、HTTPリスナー・ポートです(インスタンス用に作成されたdefault-web-site.xml Webサイト構成ファイルで設定)。

    • context-rootは、先に指定したWebアプリケーションのコンテキスト・ルートで、「WARデプロイメント・プロファイルのプロパティ」の「一般」にあります。

    • producer_nameは、ポートレット・プロデューサの名前です。WARファイルには、複数のプロデューサが含まれている場合があるので、明確にするために、必ずプロデューサの名前を含める必要があります。そうしないと、単に最後に作成されたプロデューサであるデフォルト・プロデューサを取得することになります。

    図18-33に示すようなページが表示されます。

18.10 ポートレットの登録と表示

プロデューサおよびそのポートレットを作成し、デプロイしたら、プロデューサをアプリケーションに登録し、ページに追加して、それが正しく動作するかをチェックする必要があります。プロデューサを登録することにより、そのプロデューサを探し、通信するために必要な情報をアプリケーションに提供します。プロデューサを登録すると、プロデューサとそのポートレットがコンポーネント・パレットで使用可能になります。

規格に基づいたポートレット用のプロデューサを登録するには、4.3.1.1項「WSRPポートレット・プロデューサの登録」の手順に従います。

PDK-Javaポートレット用のプロデューサを登録するには、4.3.1.2項「PDK-Javaポートレット・プロデューサの登録」の手順に従います。

ポートレットをページに追加するには、4.3.2項「ページへのポートレットの追加」の手順に従います。



脚注

脚注1: Javaポートレット仕様1.0は、Java Specification Request 168およびJSR168専門家グループによって作成されました。