Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発 11gリリース1 (11.1.1.8.3) E49666-03 |
|
前 |
次 |
この付録では、Oracle WebCenter Portal Frameworkで作成したアプリケーションで、既存のOracle Portalアプリケーションのコンポーネントを再利用する方法について説明します。
内容は次のとおりです。
Oracle Portalの最も基本的な2つの構築要素は次のとおりです。
ポートレットはポータル・ページの基本的な構築要素です。ポートレットは、次の3つのプロデューサ(Oracle Portalではプロバイダと呼ばれます)・タイプを使用してデプロイできます。
Web(またはOracle PDK-Java)プロデューサは、XML、SOAP、HTTPまたはJ2EEなどのオープン標準を使用して、デプロイメント、定義およびアプリケーションとの通信を実行します。Oracle PDK-Javaは、Webプロデューサを構築するタスクを単純化するフレームワークを提供します。
WSRPプロデューサは、標準ベースのポートレットのコンテナとして機能します。
データベース・プロデューサには、1つ以上のデータベース・ポートレットが存在します。データベース・ポートレットの例として、Oracle PDK-PL/SQLによって構築されたポートレット、ポートレット・ビルダー・ポートレット(チャート、フォーム、レポートなど)およびOracle Portalページ・ポートレットがあります。
WebCenter Portal FrameworkでWebポートレットおよびWSRPポートレットを使用できるようにするには、それらのプロデューサをアプリケーションに登録します。詳細は、第E.2.1項「JSR 286とOracle PDK-Javaポートレットの再利用法」を参照してください。
フェデレーテッド・ポータル・アダプタを使用して、Portal Frameworkアプリケーションからデータベース・ポートレットを使用できるようにすることもできます。詳細は、第E.2.8項「データベース・ポートレットを再利用するためのフェデレーテッド・ポータル・アダプタの利用法」を参照してください。
アイテムは、ページ内のアイテム・リージョンにあるコンテンツの個々の要素(テキスト、ハイパーリンク、イメージなど)です。適切な権限レベルを持つユーザーが、アイテムをページに追加できます。アイテムのコンテンツとメタデータは、メタデータ・リポジトリのOracle Portalスキーマ内に格納されます。アイテムは、アイテム・リージョンに定義されたレイアウト、スタイルおよび属性表示に従って、ページ上にレンダリングされます。
アイテムはコンテンツ・リポジトリに格納されているため、Java Content Repository (JCR)データ・コントロールを使用して取得できます。Oracle Portalコンテンツ・リポジトリ用のデフォルト・アダプタは、WebCenter Portal Frameworkに標準で付属しています。詳細は、第E.3項「アイテムの再利用」を参照してください。
Oracle PortalとWebCenter Portalには技術的な違いがあるので、プラットフォーム間で直接アップグレードすることはできません。ただし、ポータルの主要コンポーネントをWebCenter Portal内で公開することはできます。
ポータルで使用しているポートレットを、Portal Frameworkアプリケーションから使用できるようにできます。
この項の内容は、次のとおりです。
JSR 286とOracle PDK-JavaポートレットをPortal Frameworkアプリケーションで再利用するには、そのプロデューサを他のプロデューサと同じ方法で登録するだけですみます。
JSR 286とOracle PDK-Javaポートレットを再利用するには:
Oracle JDeveloperでWSRPプロデューサの登録ウィザードまたはOracle PDK-Javaプロデューサ登録ウィザードにアクセスします。
ウィザードの各ステップで、URLエンドポイントなど、プロデューサに関する情報を指定します。
ポートレットを追加するページを開きます。
登録済プロデューサのポートレットをそのページの適切な位置にドラッグします。
Portal Frameworkアプリケーションでのポートレットの消費の詳細は、第63章「ポートレットの消費」を参照してください。
WebCenter Portal Frameworkでは、Oracle PDK-Javaイベントはサポートされていません。イベントを使用するOracle PDK-JavaポートレットをWebCenter Portal Framework環境にデプロイしている場合、イベントは無視されます。
WebCenter Portal Frameworkでは、モバイル・ポートレットはサポートされていません。Oracle PDK-Javaモバイル・ポートレットがあっても、WebCenter Portal Framework環境ではそれらは機能しません。
WebCenter Portal Frameworkでは、ポートレットでクロムは提供されません。クロムは、ポートレットを使用するアプリケーションが提供します。この動作はWSRP規則に準拠していますが、Oracle PDK-Javaでポートレット用のクロムが提供されたOracle Portalからの変更点です。したがって、Oracle PDK-Javaポートレットのヘッダーは、WebCenter Portal Framework環境ではフィルタリングによって除去されます。
このフィルタリング・プロセスの一部として、WebCenter Portal FrameworkではPDK-Javaポートレットのタイトル領域を解析して、そのタイトルを保持し、必要なポートレット・モード・リンクを追加します。フィルタリングのアルゴリズムは、次のとおりです。
ポートレットに複数の表がある場合、タイトル領域は最初の表とみなされます。ポートレットに表が1つしかない場合は、タイトル領域はその表の最初の行とみなされます。
タイトル領域の最初のテキストはタイトルとみなされます。ポートレットに表がないか、タイトルが認識できない場合、タイトルはadfp:portlet
コンポーネントから取得されます。
フラグメント_mode=
parameter
を含むリンクは、ポートレット・モード・リンクとみなされます。これらのリンクは、WebCenter Portal Frameworkによってポートレット・メニューに移動されます。
ポートレット・クロムのヘッダー・セクションの解釈を回避し、元のOracle PDK-Javaヘッダーを再利用する場合は、adfp:portlet
タグのdisplayHeader
属性をfalse
に、ページ定義XMLの関連ポートレット・バインディングでretainPortletHeader
をtrue
に設定します。ページ定義ポートレット・バインディングでretainPortletHeader=true
に設定すると、ポートレット・レスポンスでポートレット・ヘッダーが保持されます。adf:portlet
タグでdisplayHeader=false
に設定すると、アプリケーションのポートレット・クロム用のヘッダーが抑止され、通常はヘッダーに表示されるアイコンやリンクが非表示になります。
ポートレットの作成者やユーザーがOracle Portal内のポートレットに適用したポートレットのカスタマイズとパーソナライズは、Portal Frameworkアプリケーションには引き継がれません。Portal Frameworkアプリケーションでは、Oracle Portalポートレットは新規のインスタンスとして処理されます。したがって、以前のパーソナライズおよびカスタマイズは使用できません。
Oracle Portalのターゲット・コンシューマを念頭に置いて構築されたポートレットは、ランタイム環境について無効な想定をする傾向があります。たとえば、ポートレットでは、Oracle Portalリソース(イメージやJavaScript関数など)の存在を想定します。WebCenter Portal Frameworkでは、これらのリソースは使用できません。そのため、ポートレットで必要なリソースをプロデューサにバンドルして、ポートレットが確実にWebCenter Portal Framework環境で正しく実行されるようにする必要があります。
Oracle Portalでの使用のために設計されたポートレットについてのもう1つの一般的な問題は、Oracle Portal URL書式とOracle Portalパラメータの存在を想定するポートレットです。Oracle ADFアプリケーションのページURLは、Oracle Portalのものとは異なります。したがって、ポートレット開発者は、ページURLについて推測できないので、適切なポートレットAPIを使用することによって、WebCenter Portal Framework環境で実行できるようにOracle PDK-Javaポートレットを準備する必要があります。
パートナ・アプリケーションはサポートされていません。外部アプリケーションはサポートされています。自動ログインは、プロデューサを登録するとアプリケーションに自動的に構成される外部アプリケーションの自動ログイン・サーブレットを通して、サポートされています。
フェデレーテッド・ポータル・アダプタは、Oracle PortalインスタンスがWebポートレット・インタフェースを通じてデータベース・ポートレットを共有することを可能にする、Oracle Portalのコンポーネントです。フェデレーテッド・ポータル・アダプタは、Webプロデューサ宛のSOAPメッセージを受信してSOAPを解析した後、それらのメッセージをPL/SQLプロシージャ・コールとしてデータベース・プロデューサにディスパッチします。フェデレーテッド・ポータル・アダプタによって、データベース・プロデューサは事実上、Webプロデューサと同じように動作します。PL/SQLポートレット、ポートレット・ビルダー・ポートレットおよびページ・ポートレットなどのOracle Portalデータベース・ポートレットを、Portal Frameworkアプリケーションで使用できるようにできます。
注意: Oracle Portalページは、Oracle Portalでポートレットとして公開することによって、フェデレーテッド・ポータル・アダプタを通じてWebCenter Portalで公開することもできます。 |
ポータルにフェデレーテッド・ポータル・アダプタを実装すると、Oracle PortalポートレットがOracle PDK-Java Webプロデューサ・プロトコルを介して公開され、それらをPDK-Javaプロデューサとして登録できます。プロデューサをPortal Frameworkアプリケーションに登録すると、ポートレットがコンポーネント・パレットに表示され、他のポートレットと同様に、それらをページにドラッグ・アンド・ドロップできます。フェデレーテッド・ポータル・アダプタがなければ、Portal Frameworkアプリケーションからこれらのプロデューサにはアクセスできません。
フェデレーテッド・ポータル・アダプタの詳細は、『Oracle Fusion Middleware Oracle Portal開発者ガイド』の「フェデレーテッド・ポータル・アダプタの使用」の章を参照してください。
フェデレーテッド・ポータル・アダプタ・プロデューサをWebCenter Portalに登録するには:
フェデレーテッド・ポータル・アダプタを使用できるように、Oracle Portal環境を設定します。詳細は、『Oracle Fusion Middleware Oracle Portal管理者ガイド』のフェデレーテッド・ポータル・アダプタを使用する環境の設定に関する項を参照してください。
フェデレーテッド・ポータル・アダプタを介してOracle Portalのインスタンスを登録するには、ポータルにOracle Internet Directoryの"PORTAL"という名前のユーザーが存在する必要があります。このユーザーを作成するには:
ポータル管理者ユーザーとしてOracle Portalインスタンスにログインします。
「ユーザー」ポートレットで「新規ユーザーの作成」をクリックします。
デフォルトでは、「ユーザー」ポートレットは、「Portalビルダー」ページの「管理」タブの「ポータル」サブタブにあります。
「姓」フィールドにPORTAL
と入力します。
「ユーザーID」フィールドにPORTAL
と入力します。
「パスワード」フィールドと「パスワードの確認」フィールドに適切なパスワードを入力します。
「電子メール・アドレス」フィールドに、適切な電子メール・アドレスを入力します。
「実行」をクリックし、「完了」をクリックします。
「ポータル・ユーザー・プロファイル」ポートレットで「名前」フィールドにPORTAL
と入力し、「編集」をクリックします。
デフォルトでは、「ポータル・ユーザー・プロファイル」ポートレットは、「Portalビルダー」ページの「管理」タブの「ポータル」サブタブにあります。
「デフォルト・グループ」フィールドにPORTLET_PUBLISHERS
と入力します。
「OK」をクリックします。
Portal FrameworkアプリケーションでOracle Portalページを表示する場合、まずそれらのページをそれぞれポートレットとして公開する必要があります。Oracle Portalページを表示するには、ページ・プロパティを編集し、「オプション」タブで「ポートレットとして公開」を選択します。詳細は、『Oracle Fusion Middleware Oracle Portalユーザーズ・ガイド』の別のページへのページの配置に関する項を参照してください。
Portal Frameworkアプリケーションのユーザーが、フェデレーテッド・ポータル・アダプタを介して公開されているポートレットやページに対して適切な権限を持っていて、Oracle Portalインスタンスのユーザーにマップされることを確認します。ある個人のPortal Frameworkアプリケーション上のユーザー名は、その人のOracle Portal上のユーザー名にマップされる必要があります。たとえば、JSMITHは、Portal FrameworkアプリケーションとOracle Portalの両方で同じ人を表す必要があります。
Oracle JDeveloperで、フェデレーテッド・ポータル・アダプタURLおよびサービスIDを使用して、プロデューサをOracle PDK-Javaプロデューサとして登録します。
http://host:port/adapter/dad/schema
URLを確認するために、ブラウザに入力します。URLが正しい場合、次のメッセージが表示されます。
Congratulations - you got to the adapter test page
ログインしている場合は、プロデューサ、そのサービスID、およびそれぞれが提供するポートレットのリストが表示されます。Oracle Portal管理者としてログインしている場合は、ページ・ポートレットとOracle Portal HMAC登録の詳細も表示されます。
プロデューサを登録する際、ウィザードの「接続詳細の指定」ページでプロデューサ・セッションの確立チェック・ボックスを選択してください。これは、WebCenter Portalユーザー情報がOracle Portalに正しく伝播されるようにするためです。
詳細は、第63.2.2項「WebCenter Portal FrameworkアプリケーションへのOracle PDK-Javaポートレット・プロデューサの登録」を参照してください。
プロデューサのポートレットをページにドラッグ・アンド・ドロップできます。
Oracle PortalインスタンスとWebCenter Portalの間の通信を保護するために、Hash Message Authentication Code (HMAC)を使用して共有鍵を提供します。
SQL*Plusに移動して、ポータル・スキーマ所有者としてログインします。
次を実行します。
@wwc/proadssr.sql http://www.oracle.com/adapter/portal
Portal Frameworkアプリケーションの場合、アダプタURLは常に同じであることに注意してください。
http://www.oracle.com/adapter/portal
共有鍵コードを入力します。
Oracle JDeveloperの「Oracle PDK-Javaポートレット・プロデューサの作成/編集」ウィザードまたはダイアログで、「追加登録詳細の指定」ステップの「共有鍵」フィールドにこの共有鍵コードを入力します。
注意: Oracle Portalインスタンスから共有鍵を削除するには: @wwc/proadsdr.sql |
ページ・ポートレットや様々なサンプル・データベース・ポートレットなど、Oracle Portalに組み込まれている一部のポートレットでは、ポータル中間層で出荷される一連のイメージがポータル・ページのWebサーバーのパス/images
に存在することを想定しています。これらのイメージは、デフォルトではPortal Frameworkアプリケーションで使用できません。これらのイメージが正しく表示されるようにするには、次を実行します。
次のzipファイルをダウンロードします。
http://download.oracle.com/otndocs/tech/portal/files/portal-images.zip
zipファイルの内容を解凍し、URL /images
の下にマウントします。
これで、ポートレットを含むページを実行できます。
次の情報は、WebCenter Portalのフェデレーテッド・ポータル・アダプタに関する問題を解決する際に役立つ可能性があります。
この項の内容は、次のとおりです。
プロデューサを登録する際にエラーが発生しました。
Oracle Portalインスタンスで共有鍵が設定されていないか、Oracle JDeveloperの共有鍵と一致しないか、またはサービスIDが入力されていません。
プロデューサに接続できませんでした
ポータル登録URLが正しくないか、Oracle JDeveloperのサービスIDがOracle Portalインスタンスのプロバイダと一致しないか、Oracle Portalインスタンスに接続できない(ファイアウォール内部にある、使用可能ではないなど)か、またはOracle JDeveloperのユーザーがOracle Portalのユーザーと一致しないかのいずれかです。メッセージの詳細には、原因に関する詳細情報が示されます。
404 見つかりません: Oracle Portalインスタンスが接続できないか、タイムアウトになりました。タイムアウトの時間を増やしてください。
406 受け入れられません: 指定したサービスIDのプロバイダがこのOracle Portalインスタンスに見つからないか、HMAC認証が失敗したか正しく構成されていません。
503 サービスは利用できません: PORTALユーザーはOracle Internet Directoryで見つかりません。Oracle Portal管理者は、PORTALユーザーをOracle Internet Directoryに追加していない可能性があります。
プロデューサに接続できませんでした
ポータル登録URLが正しくないか、Oracle JDeveloperのサービスIDがOracle Portalインスタンスのプロバイダと一致しないか、Oracle Portalに接続できない(ファイアウォール内部にあるか、または使用可能ではない場合など)か、またはOracle JDeveloperのユーザーがOracle Portalのユーザーと一致しないかのいずれかです。メッセージの詳細には、原因に関する詳細情報が示されます。
404 見つかりません: Oracle Portalインスタンスが接続できないか、タイムアウトになりました。タイムアウトの時間を増やしてください。
406 受け入れられません: 指定したサービスIDのプロバイダがこのOracle Portalインスタンスに見つからないか、HMAC認証が失敗したか正しく構成されていません。
503 サービスは利用できません: PORTALユーザーはOracle Internet Directoryで見つかりません。Oracle Portal管理者は、PORTALユーザーをOracle Internet Directoryに追加していない可能性があります。
ポートレットが正しくレンダリングされません。
イメージが見つからないか、リンクとして表示される場合は、第E.2.8項「データベース・ポートレットを再利用するためのフェデレーテッド・ポータル・アダプタの使用方法」のイメージzipファイルのダウンロードの手順を参照してください。
ナビゲーションが正常に機能しない場合は、ページを編集してRenderPortletInIframe
をtrue
に設定することを試行します。一部のポートレットはそれ自体のインライン・フレーム(IFRAME)内のほうが正常に機能します。
ポートレットから次のメッセージが表示された場合は、RenderPortletInIframe
をtrue
に設定してポートレットをIFRAME内に配置することを試行します。
The portlet attempted to issue a redirect in response to a render request.
ポートレットでポップアップや値リストなどが正常に機能しない場合は、XSS攻撃を避けるためにJavaScript例外が発生していることが原因である可能性があります。ポップアップは、Portal Frameworkアプリケーションと同一のサーバーURLを持つ必要があります。
ポートレットにカスタマイズ用またはパーソナライズ用の空白画面がレンダリングされる場合、ユーザーがポートレットを編集する権限を持っていない可能性があります。ポータル・ログ・ファイルを確認します。
WebCenter Portalでフェデレーテッド・ポータル・アダプタを使用する場合、次の制限が適用されます。
ディープ・リンクは機能しない可能性があります。ポートレットをIFRAME内に配置する(RenderPortletInIframe
をtrue
に設定する)と、機能する場合もあります。
ポートレットでレンダリングされるリンクは、絶対URLである必要があります。
ページ・ポートレットにタブ付きページを表示する場合、IFRAMEに配置する必要があります。
ページ・ポートレットに表示されたポートレットでは、「リフレッシュ」、「閉じる」および「削除」の各ポートレット・リンクは機能しません。
一部のオブジェクトは、フェデレーテッド・ポータル・アダプタによって返されず、したがってWebCenter Portalには表示されません。詳細なリストは、Oracle Fusion Middleware Oracle WebCenter Portalの管理のOracle Portal: 制限事項に関する項を参照してください。
Oracle Application Serverリリース2 (10.1.2)以前で設計しデプロイしたプロデューサがある場合、次の2つの方法のいずれかでそれを再利用できます。
Oracle Application Serverリリース2 (10.1.2.0.2)の中間層で実行中のプロデューサから、ポートレットを使用できます。この場合、プロデューサのコードはリリース2 (10.1.2.0.2)上で実行されますが、プロデューサを使用するアプリケーションはリリース11上で実行されます。
プロデューサ・アプリケーションをEARファイルとしてOracle WebLogic Server上に再デプロイし、他のPortal Frameworkアプリケーション内でそのポートレットを使用できます。この場合、プロデューサのコードと使用側のアプリケーションは、どちらもリリース11上で実行されます。
いずれの場合も、プロデューサのポートレットを正しく動作させるにはいくつかの追加の手順が必要です。Oracle Portal用に構築されたポートレットでは、ページ・アセンブリ・サーブレット上に特定のボイラープレート・イメージが表示されることが予想され、それらのイメージがない場合、ポートレットは壊れます。これらのイメージは、デフォルトでは、Oracle Application Serverリリース2 (10.1.2.0.2)内の中間層サーブレットに含まれていましたが、WebCenter Portal Frameworkの場合、ポートレットがイメージを検出できることを手動で確認する必要があります。
この項の内容は、次のとおりです。
WebCenter Portalでは、Oracle Portalインスタンスのページ上で実行中のポートレットを使用するために、次のいずれかを実行します。
Oracle Technology NetworkからOracle Portalイメージzipファイルを取得し、ADFPサーブレット内で解凍します。
リソース・サーブレットを次のように正しく構成します。
例E-1に示すように、初期化パラメータをWebサーブレットに追加します。
例E-1 Webサーブレットの初期化パラメータ
<servlet> <servlet-name>SOAPServlet</servlet-name> <display-name>SOAPServlet</display-name> <description>Extended Portal SOAP Server</description> <servlet-class>oracle.webdb.provider.v2.adapter.SOAPServlet</servlet-class> ... <init-param> <param-name>resourceServletMapping</param-name> <param-value>/pdkresource</param-value> </init-param> </servlet>
例E-2に示すように、リソース・サーブレットのサーブレット定義を追加します。
例E-3に示すように、リソース・サーブレットのサーブレット・マッピングを追加します。
これで、このPDK-Javaプロデューサを他のPDK-Javaプロデューサと同じ方法で登録できます。PDK-Javaプロデューサの詳細は、第63.2.2項「WebCenter Portal FrameworkアプリケーションへのPDK-Javaポートレット・プロデューサの登録」を参照してください。
Oracle Portal用に構築されたPDK-Javaプロデューサを取得し、Oracle WebLogic Serverに再デプロイすることを選択した場合、リソース・サーブレットを次のように有効にする必要があります。
例E-4に示すように、初期化パラメータをWebサーブレットに追加します。
例E-4 Webサーブレットの初期化パラメータ
<servlet> <servlet-name>SOAPServlet</servlet-name> <display-name>SOAPServlet</display-name> <description>Extended Portal SOAP Server</description> <servlet-class>oracle.webdb.provider.v2.adapter.SOAPServlet</servlet-class> ... <init-param> <param-name>resourceServletMapping</param-name> <param-value>/pdkresource</param-value> </init-param> </servlet>
例E-5に示すように、リソース・サーブレットのサーブレット定義を追加します。
例E-6に示すように、リソース・サーブレットのサーブレット・マッピングを追加します。
これで、このPDK-Javaプロデューサを他のPDK-Javaプロデューサと同じ方法で登録できます。PDK-Javaプロデューサの詳細は、第63.2.2項「WebCenter Portal FrameworkアプリケーションへのPDK-Javaポートレット・プロデューサの登録」を参照してください。
Oracle Portalのアイテムに相当するものがWebCenter Portal Frameworkにはありません。そのため、アイテムの作成、維持および公開は、WebCenter Portal Frameworkではサポートされていません。WebCenter Portal Frameworkでアイテムの動作をレプリケートするために、JCRデータ・コントロールを使用してOracle Portalのコンテンツを組み込むことができます。Oracle Portalは、WebCenter Portal FrameworkがJDeveloperの「コンテンツ・リポジトリのデータ・コントロールの作成」ダイアログで標準でサポートしているコンテンツ・リポジトリです。Oracle Portalからのコンテンツの統合の詳細は、第25章「コンテンツ・リポジトリ接続の構成」を参照してください。