ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド
11g リリース1 (11.1.1.6.0)
B72084-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

64 ポートレットの消費

この章では、WebCenter Portal: Frameworkアプリケーションのページにポートレットを追加する方法およびこのプロセスに付随するオプションについて説明します。

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

この章では、Oracle JDeveloperやOracle ADFページの作成の基礎については説明していません。Frameworkアプリケーション・ページに固有のページ作成についてのみ説明しています。このため、この章を読む前に、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の内容をよく理解しておくようにしてください。

Frameworkアプリケーション・ページで消費できるポートレットの作成の詳細は、次の章を参照してください。

64.1 ポートレットの消費の概要

Oracle WebCenter Portal: Frameworkでは、ポートレット・プロデューサをアプリケーションに、またはアプリケーションへの追加が可能な「リソース・パレット」に登録することにより、ポートレットを消費できます。プロデューサを登録した後は、「アプリケーション・リソース」または「リソース・パレット」の「接続」ノードにある登録済プロデューサ名の下にそのポートレットが表示されます。

アプリケーションでは、自分で構築したポートレットおよび(パッケージ・アプリケーションのベンダーなどの)サード・パーティから入手したポートレットを消費できます。

ポートレット消費に関連付けられているオプションは多数あります。たとえば、ポートレットをページに直接配置するか、コンポーザ・コンポーネント内にネストするかを選択できます。また、ポートレット・タグの多くの属性を調整したり、ポートレットを相互に連結できます。

64.2 WebCenter Portal: Frameworkアプリケーションへのポートレット・プロデューサの登録

ポートレットをFrameworkアプリケーション・ページに追加する前に、ポートレットのプロデューサをアプリケーションに登録する必要があります。ポートレット・プロデューサは次の2つの方法で登録できます。

「リソース・パレット」で使用可能なポートレットは、その他のコンポーネントと同じようにページにドロップすることで、Frameworkアプリケーションに追加できます。「リソース・パレット」からポートレットを追加する際、そのプロデューサがまだアプリケーションに登録されていない場合には、アプリケーションに登録されます。アプリケーション・ナビゲータの「アプリケーション・リソース」パネルに、「リソース・パレット」からプロデューサ接続全体をドラッグ・アンド・ドロップすることもできます。これにより、プロデューサがアプリケーションに登録されます。または、「リソース・パレット」でプロデューサを右クリックし、コンテキスト・メニューから「アプリケーションに追加」を選択して、現在開いているアプリケーションにプロデューサを登録します。

JDeveloperには、WSRPプロデューサおよびOracle PDK-Javaプロデューサの両方を登録するウィザードが用意されています。


注意:

アプリケーションがソース制御されている場合は、ソース制御システムで、プロデューサ登録時に作成された新しいファイルに対して要素を手動で作成する必要があります。すでにソース制御されているファイルは、プロデューサ登録プロセスによって自動的にチェックアウトされます。


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

プロデューサの詳細は、第58.2.3項「デプロイ・タイプ」を参照してください。Oracleを介して事前構築済のポートレットを入手する方法の詳細は、第3.4項「統合WebLogic Serverの使用」を参照してください。JDeveloperのポートレット作成ウィザードの使用方法の詳細は、第60章「ポートレット・ウィザードを使用したポートレットの作成」を参照してください。ポートレットの詳細は、第58章「ポートレットの概要」を参照してください。

64.2.1 WSRPポートレット・プロデューサの登録方法

WSRPポートレット・プロデューサを登録する場合、プロデューサの操作パラメータを指定する基本情報を設定します。ポートレットを消費するアプリケーションは、プロデューサと通信したり、プロデューサを介してポートレットと通信するときに、この情報を使用します。

WebCenter Portal: Frameworkでは、WSRP 1.0プロデューサとWSRP 2.0プロデューサの両方がサポートされています。WSRP 2.0標準では特に、ポートレット間の通信およびポートレット・カスタマイズのエクスポートやインポートがサポートされます。標準ベースのJSR 286ポートレットを構築しながら、WSRP 2.0のメリットも活用できます。

WSRPポートレット・プロデューサの登録ウィザードは、WSRP 1.0および2.0の両方のプロデューサを登録するためのエントリ・ポイントです。登録が正常に完了すると、接続を作成した場所に応じて、新たに登録されたプロデューサがJDeveloperのアプリケーション・ナビゲータの「アプリケーション・リソース」パネルまたは「リソース・パレット」のいずれかに表示されます。これで、アプリケーション(jspx)ページに配置するポートレットをプロデューサから選択できます。


注意:

Oracle WebLogic Portalにより提供されるプロデューサを登録していて、ポートレットでADFリッチ・コンポーネントを使用する場合は、WSRP 2.0 WSDL URLを登録し、ポートレットが正しく機能していることを確認します。


WSRPポートレット・プロデューサの登録ウィザードを使用して、JSFポートレット(ポートレット化されたJSFアプリケーションまたはポートレット化されたADFタスク・フロー)を登録することも可能です。JSFアプリケーションからポートレットを作成すると、ポートレットをWLSインスタンスにデプロイし、WSRPポートレット・プロデューサを登録するのと同じようにJSFポートレット・プロデューサを登録できます。Oracle JSF Portlet Bridgeでは、JSFアプリケーションおよびタスク・フローはJSR 286ポートレットとして公開されます。詳細は、第59章「Oracle JSF Portlet Bridgeを使用したポートレットの作成」を参照してください。

WSRPポートレット・プロデューサを登録する手順は次のとおりです。


注意:

WSRPポートレット・プロデューサの登録ウィザードで、「終了」をクリックした後に「取消」をクリックしても、登録は取り消されません。


  1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「接続」を右クリックし、「接続の作成」を選択して「WSRPプロデューサ」を選択します。

    「リソース・パレット」からの起動など、ウィザードを起動するその他の方法については、第1.6.2項「接続ウィザードにアクセスする方法」を参照してください。

  2. WSRPポートレット・プロデューサの登録ウィザードの「プロデューサ名の指定」ページ(図64-1)では、ウィザードへのアクセス方法に応じて、「接続の作成」オプションが設定されます。アプリケーションからウィザードを起動した場合のデフォルトの選択は「アプリケーション・リソース」で、「リソース・パレット」からウィザードを起動した場合は「リソース・パレット」です。このオプションはこの時点で変更が可能です。

    図64-1 「プロデューサ名の指定」ページ(WSRPプロデューサ)

    図64-1の説明が続きます
    「図64-1 「プロデューサ名の指定」ページ(WSRPプロデューサ)」の説明

  3. 「ターゲット・プロジェクト」ドロップダウン・リストから、WSRPプロデューサ接続用に構成されるプロジェクトを選択します。

    これは、ポートレットを消費するプロジェクトと同じプロジェクトとする必要があります。

    このオプションは、アプリケーション・ナビゲータからウィザードを起動した場合にのみ変更可能です。

  4. 「プロデューサ登録名」フィールドに、すべての接続において一意のプロデューサ登録名を入力し、「次へ」をクリックします。

  5. 「接続詳細の指定」ページ(図64-2)の「WSDL URL」フィールドに、プロデューサのURLを入力します。

    WSRPの実装に応じて構文が変わります。たとえば、サンプルWSRPプロデューサは次の構文を使用します。

    • http://host:port/context-root/portlets/wsrp1?WSDL

    • http://host:port/context-root/portlets/wsrp2?WSDL

    • http://host:port/context-root/portlets?WSDL (下位互換性のためのWSRP 1.0)

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

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

    • portは、サーバーがHTTPリクエストをリスニングするポートです。

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

    • portlets[/wsrp(1|2)]?WSDLは静的テキストです。ここに入力するテキストは、プロデューサがデプロイされている方法によって異なります。

    次に例を示します。

    http://myhost.example.com:7101/portletapp/portlets/wsrp2?WSDL
    

    プロデューサ・テスト・ページには、次のURLを介してアクセスできます。

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

    図64-2 「接続詳細の指定」ページ(WSRPプロデューサ)

    図64-2の説明が続きます
    「図64-2 「接続詳細の指定」ページ(WSRPプロデューサ)」の説明

  6. アプリケーションとプロデューサがファイアウォールで分離されている場合、アプリケーションとプロデューサ間の通信にはHTTPプロキシが必要となります。これが該当する場合、「プロデューサへの連絡にプロキシを使用」を選択し、プロキシのURLとポート番号を指定します。


    注意:

    この手順のプロキシ・フィールドは、デフォルトで、JDeveloperの「プリファレンス」(メイン・メニューの「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択)に設定されているプロキシ・プリファレンスとなります。


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

    プロデューサへの接続がテストされます。問題がある場合は、エラー・メッセージが表示されます。続行するには、問題を解決する必要があります。

  8. 「追加登録詳細の指定」ページ(図64-3)の「デフォルト・タイムアウト間隔(秒)」フィールドに、設計時の操作中にプロデューサが応答するまでの待機時間(秒数)を入力します。

    プロデューサによっては、追加の登録プロパティを定義します。そのような場合は、プロパティがウィザードのこのページの表に表示されます。ユーザーは、表のこれらの追加プロパティに対する値を入力できます。これらのプロパティはプロデューサに固有であり、登録時にのみ使用されます。つまり、コンシューマ・アプリケーションによりプロデューサに送信される情報を登録時に収集すると、プロデューサによってコンシューマに対してこの情報が格納され、以降は使用されます。

    図64-3 「追加登録詳細の指定」ページ(WSRPプロデューサ)

    図64-3の説明が続きます
    「図64-3 「追加登録詳細の指定」ページ(WSRPプロデューサ)」の説明

  9. 「リソース・パレット」でプロデューサを登録している場合は、「終了」をクリックして登録を完了します。

    「アプリケーション・リソース」パネルでプロデューサを登録しており、プロデューサ(したがって、そのポートレット)にアクセスがあるたびに認証をリクエストする場合は、「次へ」をクリックして残りの手順に従います。セキュリティを構成しない場合は、「終了」をクリックします。

    プロデューサがユーザー・カテゴリを宣言する場合、「終了」をクリックすると、「WSRPポートレット・プロデューサの登録」ダイアログが表示されます。「はい」をクリックし、第64.2.2項「プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJava EEセキュリティ・ロールにマップする方法」を参照してください。この機会を拒否し、登録プロセスを完了する場合は、「いいえ」をクリックします。


    注意:

    この時点でユーザー・カテゴリをセキュリティ・ロールにマップすることを拒否した場合は、プロデューサ登録を編集することにより、後でマップできます。


  10. 「セキュリティ属性の構成」ページ(図64-4)の「トークン・プロファイル」ドロップダウン・リストから、WSRPプロデューサでの認証に使用するトークン・プロファイルのタイプを選択します。

    • なし: トークンなし。SOAPメッセージにWS-Securityヘッダーは添付されません。

      このオプションを選択する場合は、ウィザードの残りを実行しないでください。「終了」をクリックします。

    • メッセージ整合性付きWSS 1.0 SAMLトークン: WS-Security 1.0標準に準拠して、アウトバウンドSOAPリクエストに対してメッセージレベルの整合性保護およびSAMLベースの認証を提供します。SOAPメッセージに含まれるSAMLトークンは、SAMLベースの認証において送信者保証の確認で使用されます。このポリシーでは、メッセージ整合性のためにWS-Securityの非対称鍵テクノロジのBasic 128スイートおよびSHA-1ハッシュ・アルゴリズムが使用されます。

    • メッセージ保護付きWSS 1.0 SAMLトークン: WS-Security 1.0標準に準拠して、アウトバウンドSOAPリクエストに対してメッセージレベルの保護(整合性と機密保護)およびSAMLベースの認証を提供します。Webサービス・コンシューマにより、SAMLトークンがSOAPヘッダーに組み込まれます。確認タイプには、送信者保証方式が使用されます。このポリシーでは、WS-Securityの非対称鍵テクノロジのBasic 128スイートが使用されます。具体的には、メッセージ機密保護にはRSA鍵メカニズム、メッセージ整合性にはSHA-1ハッシュ・アルゴリズムが使用され、AES-128ビット暗号化も使用されます。

      このポリシーを選択する場合、「受信者の別名」も指定する必要があります。

    • WSS 1.0ユーザー名トークン(パスワードなし): WS-Security v1.0標準に準拠して、アウトバウンドSOAPリクエストに対してユーザー名(パスワードあり)トークン・プロファイル・ベースのアイデンティティ伝播を証明書ベースのメッセージ保護とともに提供します。プレーン・テキストとダイジェスト・メカニズムの両方がサポートされます。このポリシーでは、WS-Securityの非対称鍵テクノロジのBasic 128スイートが使用されます。具体的には、メッセージ機密保護にはRSA鍵メカニズム、メッセージ整合性にはSHA-1ハッシュ・アルゴリズムが使用され、AES-128ビット暗号化も使用されます。

      WSRPプロデューサが異なるアイデンティティ・ストアを持っている場合は、このトークン・プロファイルを使用します。プロデューサに関連する外部アプリケーションを定義し、外部アプリケーションをこのプロデューサに関連付ける必要があります。ここで定義した外部アプリケーションは、ユーザーの資格情報を取得し、プロデューサに伝播するために使用されます。プロデューサは、外部アプリケーション用に構成されたアイデンティティ・ストアに対してこの情報を検証します。

      このポリシーを選択する場合、「受信者の別名」も指定する必要があります。

    • WSS1.0ユーザー名トークン(パスワードあり): WS-Security 1.0標準に準拠して、アウトバウンドSOAPリクエストに対してユーザー名(パスワードあり)トークン・プロファイル・ベースのアイデンティティ伝播を証明書ベースのメッセージ保護とともに提供します。資格情報(ユーザー名のみ)は、WS-Security UsernameTokenヘッダーを介してアウトバウンドSOAPリクエスト・メッセージに組み込まれます。パスワードは格納されません。メッセージ保護は、WS-Security 1.0の非対称鍵テクノロジのBasic 128スイートを使用して行われます。具体的には、メッセージ機密保護にはRSA鍵メカニズム、メッセージ整合性にはSHA-1ハッシュ・アルゴリズムが使用され、AES-128ビット暗号化も使用されます。

      このポリシーを選択する場合、「受信者の別名」も指定する必要があります。

    • WSS 1.0 SAMLトークン: WS-Security 1.0標準に準拠して、アウトバウンドSOAPリクエスト・メッセージに対してSAMLベースの認証を提供します。このポリシーはユーザーIDを伝播し、通常は、メッセージ保護と整合性チェックが必要のない部門間デプロイに使用されます。

      このポリシーにはキーストア構成は必要ありません。

    • メッセージ保護付きWSS 1.1 SAMLトークン: WS-Security 1.1標準に準拠して、アウトバウンドSOAPリクエストに対してメッセージレベルの保護(整合性および機密保護)およびSAMLトークンの移入を提供します。SOAPメッセージに含まれるSAMLトークンは、SAMLベースの認証において送信者保証の確認で使用されます。このポリシーでは、署名と暗号化については対称鍵テクノロジが使用され、署名の承認については非対称鍵テクノロジであるWS-SecurityのBasic 128が使用されます。

    図64-4 「セキュリティ属性の構成」ページ(WSRPプロデューサ)

    図64-4の説明が続きます
    「図64-4 「セキュリティ属性の構成」ページ(WSRPプロデューサ)」の説明

  11. 構成タイプを選択します。

    • デフォルト: デフォルトを選択した場合、すべてのデフォルトのキーストア属性(場所、パスワード、キーストア・タイプ、署名キーと別名、暗号化キーと別名など)が、JSP (Javaプラットフォーム・セキュリティ)構成から選択されます。受信者の別名の値は、使用中のポリシーにより使用されます。アプリケーションがデプロイされるWebLogic Serverは、WS-Security用に構成する必要があります。詳細は、Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイドのWS-Securityを使用したWSRPプロデューサの保護に関する項を参照してください。

    • カスタム: このオプションを選択した場合は、適切なキーストア属性をウィザードの次のページに入力する必要があります。

  12. 「デフォルト・ユーザー」フィールドに、ユーザーがFrameworkアプリケーションに対して認証されていないときにリモート・プロデューサにアサートするユーザー名を入力します。

    認証されていない場合、anonymousというアイデンティティがアプリケーション・ユーザーに関連付けられます。OWSMでは現在anonymousアイデンティティの伝播はサポートしていません。したがって、ここに別のアイデンティティを指定する必要があります。ただし、この場合は、Frameworkアプリケーションがユーザーを認証していないため、指定したデフォルト・ユーザーはリモート・プロデューサで権限の低いユーザー(パブリック・コンテンツの表示に使用するために適切なアイデンティティ)になることに注意してください。たとえば、この目的のためにアイデンティティ・ストアにゲスト・アカウントを作成できます。ユーザーがアプリケーションで認証されている場合、デフォルト・ユーザーではなくそのユーザーのアイデンティティがアサートされます。


    注意:

    「デフォルト・ユーザー」を指定する場合は、この情報を受け入れるようにリモート・プロデューサ設定する必要があります。


    「ユーザー名トークン(パスワードあり)」を選択した場合は、「デフォルト・ユーザー」フィールドは表示されません。

  13. 「発行者名」フィールドに、SAMLトークンの発行者名(www.oracle.comなど)を入力します。

    このフィールドは、「トークン・プロファイル」ドロップダウン・リストから「SAMLトークン」オプションを選択し、「構成」オプションから「カスタム」を選択した場合にのみ表示されます。発行者名は、サブジェクトの検証用の証明エンティティ保証です。

  14. このプロデューサが外部アプリケーションに対する認証を提供する必要がある場合は、「プロデューサと外部アプリケーションとの関連付け」を選択し、アプリケーションを選択します。

    詳細は、第69.13.3項「外部アプリケーションの管理」を参照してください。

    このオプションは、「ユーザー名トークン(パスワードあり)」を選択した場合にのみ使用できます。

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

    構成オプションに「デフォルト」を選択した場合、「キーストアの指定」ページのフィールドが無効化されます。「終了」をクリックして、登録を完了します。

    プロデューサがユーザー・カテゴリを宣言する場合、「終了」をクリックすると、「WSRPポートレット・プロデューサの登録」ダイアログが表示されます。「はい」をクリックし、第64.2.2項「プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJava EEセキュリティ・ロールにマップする方法」を参照してください。この機会を拒否し、登録プロセスを完了する場合は、「いいえ」をクリックします。

  16. 「キーストアの指定」ページの「ストア・パス」フィールドに、SOAPメッセージの一部(セキュリティ・トークンとSOAPメッセージ本体)を署名するために使用される証明書および秘密鍵が含まれるキーストアのフルパスを入力します。

    フルパスがわからない場合は、「参照」をクリックして該当のファイルにナビゲートして選択します。選択したファイルは、Java keytoolを使用して作成したキーストアである必要があります。

    図64-5 「キーストアの指定」ページ(WSRPプロデューサ)

    図64-5の説明が続きます
    「図64-5 「キーストアの指定」ページ(WSRPプロデューサ)」の説明

  17. 「ストア・パスワード」フィールドで、キーストアの作成時に設定されたキーストアに対するパスワードを指定します。

    キーストア・パスワードが正しくないと、「ストア・タイプ」フィールドと「署名鍵の別名」ドロップダウン・リストは移入されません。

    間違ったキーストア・パスまたはパスワードを入力すると、パスワードは無効で修正する必要があるというエラー・メッセージが表示されます。「ストア・パス」および「ストア・パスワード」を除き、この画面のすべてのフィールドは、正しい値を指定するまで無効化されます。

  18. 正しいキーストア・パスとパスワードを指定した後、[Tab]キーを押して別のアクティブ・フィールド(「ストア・パス」フィールドなど)に移動します。これにより、「ストア・タイプ」フィールドと「署名鍵の別名」ドロップダウン・リストは適切に移入されます。

  19. 「ストア・タイプ」の値はキーストアから読み取られ、常に編集不可能です。ストア・タイプは常にJKS (Javaキーストア)です。

  20. 「署名鍵の別名」ドロップダウン・リストから、署名鍵の別名を選択します。

    「ストア・パスワード」フィールドに正しいパスワードが入力されると、このリストに自動的に移入されます。「署名鍵の別名」は、署名に使用される秘密鍵に関連付けられた証明書の識別子です。指定されたキーストアで見つかった鍵の別名は、リストで選択可能になります。署名に使用する鍵の別名を選択してください。

  21. 「署名鍵のパスワード」フィールドで、「署名鍵の別名」に指定されている別名で識別される鍵にアクセスするためのパスワードを指定します。

  22. オプションで、「暗号化鍵の別名」リストから、暗号化鍵の別名を選択します。

    「ストア・パスワード」フィールドに正しいパスワードが入力されると、このリストに自動的に移入されます。指定されたキーストアで見つかった鍵の別名は、リストで選択可能になります。暗号化に使用する鍵の別名を選択してください。

  23. オプションで、「暗号化鍵のパスワード」フィールドで、「暗号化鍵の別名」に指定されている別名で識別される鍵にアクセスするためのパスワードを指定します。

  24. 「受信者の別名」フィールドから、プロデューサの証明書に関連付けられたキーストアの別名を選択し、「終了」をクリックします。

    この資格証明は、プロデューサへのメッセージを暗号化するために使用されます。

    ウィザードの「セキュリティ属性の構成」ページで、「メッセージ整合性付きSAMLトークン」「トークン・プロファイル」として選択した場合は、このフィールドは表示されません。

    プロデューサがユーザー・カテゴリを宣言する場合は、「終了」をクリックすると、ユーザー・カテゴリをJava EEロールにマップするかどうかを尋ねるダイアログが表示されます。「はい」をクリックし、第64.2.2項「プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJava EEセキュリティ・ロールにマップする方法」を参照してください。この機会を拒否し、登録プロセスを完了する場合は、「いいえ」をクリックします。

64.2.2 プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJava EEセキュリティ・ロールにマップする方法

プロデューサで宣言するユーザー・カテゴリは、プロデューサに含まれるポートレットから導出されます。たとえば、規格に基づいたJavaポートレット(JSR 286)ウィザードで作成された1つ以上のJSR 286ポートレットがプロデューサに含まれる場合、ポートレット作成中に追加されたセキュリティ・ロールはすべて、プロデューサで宣言するユーザー・カテゴリに含められます。Java EEセキュリティ・ロールは、Frameworkアプリケーションのweb.xmlファイルのプロパティを介して指定できます。

JSR 286ポートレットのセキュリティ・ロールの詳細は、第69.17項「WS-Securityを使用したWSRPプロデューサを介するアイデンティティ伝播の保護」を参照してください。

この手順は、第64.2.1項「WSRPポートレット・プロデューサの登録方法」の続きです。

プロデューサ宣言のユーザー・カテゴリをアプリケーション定義のJava EEセキュリティ・ロールにマップする手順は、次のとおりです。

  1. WSRPポートレット・プロデューサの登録ウィザードで「終了」をクリックしたら、その結果表示されるダイアログで「はい」をクリックします。

  2. 「ユーザー・カテゴリ」ダイアログ(図64-6)で、ユーザー・カテゴリごとに「J2EEセキュリティ・ロール」列の対応するフィールドをクリックします。

    プロデューサ登録設定を編集する場合は、「ユーザー・カテゴリ」ダイアログにもアクセス可能です。詳細は、第64.2.4項「ポートレット・プロデューサ登録設定の編集方法」を参照してください。

    図64-6 「ユーザー・カテゴリ」ダイアログ

    図64-6の説明が続きます
    「図64-6 「ユーザー・カテゴリ」ダイアログ」の説明

  3. 表示されるリストから、プロデューサのユーザー・カテゴリにマップするセキュリティ・ロールを選択します。

  4. すべてのユーザー・カテゴリがマップされたら、「OK」をクリックします。

64.2.3 Oracle PDK-Javaポートレット・プロデューサの登録方法

PDK-Javaポートレット・プロデューサを登録する場合、プロデューサの操作パラメータを指定する基本情報を設定します。ポートレットを消費するアプリケーションは、プロデューサと通信したり、プロデューサを介してポートレットと通信するときに、この情報を使用します。

登録が正常に完了すると、接続を作成した場所に応じて、新たに登録されたプロデューサがJDeveloperのアプリケーション・ナビゲータの「アプリケーション・リソース」パネルまたは「リソース・パレット」のいずれかに表示されます。これで、アプリケーション(jspx)ページに配置するポートレットをプロデューサから選択できます。


注意:

Oracle PDK-Javaポートレット・プロデューサの登録ウィザードで、「終了」をクリックした後に「取消」をクリックしても、登録は取り消されません。


PDK-Javaポートレット・プロデューサを登録する手順は次のとおりです。

  1. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「接続」を右クリックし、「接続の作成」を選択して「Oracle PDK-Javaプロデューサ」を選択します。

    「リソース・パレット」からの起動など、ウィザードを起動するその他の方法については、第1.6.2項「接続ウィザードにアクセスする方法」を参照してください。

  2. Oracle PDK-Javaポートレット・プロデューサの登録ウィザードの「プロデューサ名の指定」ページ(図64-7)では、ウィザードへのアクセス方法に応じて、「接続の作成」オプションが設定されます。アプリケーションからウィザードを起動した場合のデフォルトの選択は「アプリケーション・リソース」で、「リソース・パレット」からウィザードを起動した場合は「リソース・パレット」です。このオプションはこの時点で変更が可能です。

    図64-7 「プロデューサ名の指定」ページ(PDK-Javaプロデューサ)

    図64-7の説明が続きます
    「図64-7 「プロデューサ名の指定」(PDK-Javaプロデューサ)」の説明

  3. 「ターゲット・プロジェクト」ドロップダウン・リストから、PDK-Javaプロデューサ接続用に構成されるプロジェクトを選択します。

    これは、ポートレットを消費するプロジェクトと同じプロジェクトとする必要があります。

    このオプションは、アプリケーション・ナビゲータからウィザードを起動した場合にのみ変更可能です。

  4. 「プロデューサ登録名」フィールドに、すべての接続において一意のプロデューサ登録名を入力し、「次へ」をクリックします。

  5. 「接続詳細の指定」ページ(図64-8)の「URLエンドポイント」フィールドに、次の構文を使用してプロデューサのURLを入力します。

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

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

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

    • portは、サーバーがHTTPリクエストをリスニングするポートです。

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

    • providersは静的テキストです。ここに入力するテキストは、プロデューサがデプロイされている方法によって異なります。

    次に例を示します。

    http://myhost.example.com:7101/myEnterprisePortlets/providers
    

    図64-8 「接続詳細の指定」ページ(PDK-Javaプロデューサ)

    図64-8の説明が続きます
    「図64-8 「接続詳細の指定」ページ(PDK-Javaプロデューサ)」の説明

  6. 「サービスID」フィールドに、このプロデューサの一意の識別子を入力します。

    PDK-Javaでは、1つのアダプタ・サーブレットの下に複数のプロデューサをデプロイできます。これらのプロデューサは、それぞれ一意のサービスIDによって識別されます。サービスIDが必要になるのは、URLエンドポイントにサービスIDまたはプロデューサ名が追加されていない場合のみです。たとえば、次のURLエンドポイントにはsampleというサービスIDが必要です。

    http://myhost:7101/myEnterprisePortlets/providers
    

    しかし、次のURLエンドポイントにはサービスIDは不要です。

    http://myhost:7101/myEnterprisePortlets/providers/sample
    
  7. アプリケーションとプロデューサがファイアウォールで分離されている場合、アプリケーションとプロデューサ間の通信にはHTTPプロキシが必要となります。これが該当する場合、「プロデューサへの連絡にプロキシを使用」を選択し、プロキシのURLとポート番号を指定します。


    注意:

    この手順のプロキシ・フィールドは、デフォルトで、JDeveloperの「プリファレンス」(メイン・メニューの「ツール」→「プリファレンス」を選択し、「Webブラウザとプロキシ」を選択)に設定されているプロキシ・プリファレンスとなります。


  8. このプロデューサが外部アプリケーションに対する認証を提供する必要がある場合は、「プロデューサと外部アプリケーションとの関連付け」を選択し、アプリケーションを選択します。

    詳細は、第69.13.3項「外部アプリケーションの管理」を参照してください。

    外部アプリケーションは個々のアプリケーションにスコープ設定されているため、このオプションは、アプリケーション・ナビゲータからウィザードを起動した場合にのみ使用可能です。

  9. 「プロデューサ・セッションの有効化」を選択し、プロデューサと消費するアプリケーション間のセッションを有効にします。

    セッションが有効化されると、サーバーは、ユーザー名などのセッション固有の情報を保守します。メッセージ認証ではセッションが使用されるため、共有鍵が設定されている場合は、このオプションも選択する必要があります。

    プロデューサとサーバー間の通信にセッションがない場合は、このオプションの選択を解除してください。

  10. ウィザードのこの時点で、残りのすべての手順にデフォルト値を使用することにより、「終了」をクリックして登録を完了できます。

    その他の詳細を設定するには、「次へ」をクリックして残りの手順に従います。

  11. 「追加登録詳細の指定」ページ(図64-9)の「デフォルト・タイムアウト間隔(秒)」フィールドに、設計時の操作中にプロデューサが応答するまでの待機時間(秒数)を入力します。

    図64-9 「追加登録詳細の指定」ページ(PDK-Javaプロデューサ)

    図64-9の説明が続きます
    「図64-9 「追加登録詳細の指定」ページ(PDK-Javaプロデューサ)」の説明

  12. 「サブスクライバID」フィールドに、登録するプロデューサのコンシューマを識別する文字列を入力します。

    プロデューサが登録されると、プロデューサのコールが送信されます。コール中、コンシューマは「サブスクライバID」の値をプロデューサに渡します。また、「サブスクライバID」の値は、ポートレット・コールが行われるたびに渡されます。「サブスクライバID」がプロデューサの予測した値でない場合、プロデューサは登録コールを拒否することがあります。


    注意:

    初期登録後にプロデューサ登録を編集してサブスクライバIDを変更しても、変更は有効になりません。別のサブスクライバIDを指定するには、プロデューサを登録しなおす必要があります。


  13. 「共有鍵」フィールドに、暗号化を処理するために設定されているプロデューサに使用する共有鍵を入力し、「終了」をクリックします。

    共有鍵は、メッセージ認証用のメッセージ署名を生成するための暗号化アルゴリズムで使用されます。共有鍵を使用してプロデューサが設定されている場合に、ここに間違った共有鍵を入力すると、プロデューサ登録は失敗します。共有鍵には、英数字10〜20文字を含めることができます。

64.2.4 ポートレット・プロデューサ登録設定の編集方法

WSRPポートレット・プロデューサの登録ウィザードとPDK-Javaポートレット・プロデューサの登録ウィザードではいずれも、プロデューサを登録したとき入力した値の多くにアクセスおよび修正できます。

ポートレット・プロデューサ登録設定を編集する手順は、次のとおりです。

  1. アプリケーション・ナビゲータの「アプリケーション・リソース」または「リソース・パレット」でプロデューサにナビゲートします。

  2. 編集するプロデューサを右クリックし、「プロパティ」を選択します。

  3. 「次へ」をクリックしてウィザードのページを進み、必要に応じてプロデューサ登録プロパティを編集します。

    ウィザードの左側にあるナビゲーション・パネルのリンクをクリックして、特定の手順に直接進むこともできます。

    「プロデューサ登録名」は編集できません。

  4. 必要な設定をすべて変更したら、「終了」をクリックします。

  5. 「WSDL URL」または「URLエンドポイント」などの一部のプロパティの編集には、プロデューサのリフレッシュが必要です。このような変更を行う場合には、ダイアログが表示され、プロデューサを即座にリフレッシュするか、プロデューサをリフレッシュせずに変更を保存するか、プロデューサ登録の編集ウィザードに戻ることができます。必要に応じて「はい」「いいえ」または 「取消」をクリックします。


    注意:

    「WSDL URL」フィールドの値は編集できますが、新しいプロデューサに古いプロデューサのプリファレンス・ストアに対するアクセス権がある場合、または古いプロデューサのプリファレンス・ストアが新しいプロデューサのプリファレンス・ストアに移行された場合にのみ、別のプロデューサを指定できます。


  6. 必要に応じて、プロデューサが正常にリフレッシュされた場合は「OK」をクリックします。

  7. 編集を完了した後は、プロデューサ接続をテストして、接続情報が有効であるか確認することを考慮してください。詳細は、第64.2.5項「ポートレット・プロデューサ接続のテスト方法」を参照してください。

64.2.5 ポートレット・プロデューサ接続のテスト方法

接続テスト機能には、ポートレット・プロデューサ接続の有効性をテストする手段が備わっています。

ポートレット・プロデューサ接続をテストする手順は次のとおりです。

  1. アプリケーション・ナビゲータの「アプリケーション・リソース」または「リソース・パレット」でプロデューサにナビゲートします。

  2. テストするプロデューサを右クリックし、「プロデューサ接続のテスト」を選択します。

  3. テストの実行中は、プログレス・バーが表示されます。テストが完了すると、成功または失敗のダイアログが表示されます。「OK」をクリックして、このダイアログを閉じます。

    失敗のダイアログが表示されたら、プロデューサ登録の詳細を編集し、プロデューサ接続を再テストすることを考慮してください。また、特に、失敗のダイアログが表示されるまでに長時間かかる場合は、プロデューサが使用可能であることを確認してください。たとえば、プロデューサが統合WLSを介して提供される場合は、統合WLSが実行中であることを確認してから、接続を再テストします。

64.2.6 ポートレット・プロデューサのリフレッシュ方法

ポートレット・プロデューサをリフレッシュすると、そのプロデューサに属するポートレットもリフレッシュされます。新しく追加されたポートレットや、既存のポートレットに対する更新内容が、このプロデューサに属するポートレットを消費しているアプリケーションに対して使用可能になります。


ヒント:

ポートレットがプロデューサから削除された場合は、必ず、ポートレットが配置されているすべてのアプリケーション・ページからそのポートレットを手動で削除してください。詳細は、第64.6項「アプリケーション・ページからのポートレットの削除」を参照してください。


ポートレット・プロデューサをリフレッシュする手順は次のとおりです。

  1. アプリケーション・ナビゲータの「アプリケーション・リソース」または「リソース・パレット」でプロデューサにナビゲートします。

  2. リフレッシュするプロデューサを右クリックし、「プロデューサ登録のリフレッシュ」を選択します。

  3. 「ポートレット・プロデューサのリフレッシュ」ダイアログで、「はい」をクリックします。

64.2.7 ポートレット・プロデューサの削除方法

特定のプロデューサをアプリケーションでもはや使用しない場合は、そのプロデューサを削除できます。ポートレットおよび関連するページ変数を削除する方法の詳細は、第64.6項「アプリケーション・ページからのポートレットの削除」を参照してください。


注意:

プロデューサを削除すると、そのプロデューサのポートレットを消費するページに、ポートレットが使用不可能であることを示すメッセージが表示されます。同じ名前を使用してプロデューサを登録しなおしても、ポートレットは使用不可能のままです。


ポートレット・プロデューサを削除する手順は次のとおりです。

  1. アプリケーション・ナビゲータの「アプリケーション・リソース」または「リソース・パレット」でプロデューサにナビゲートします。

  2. 削除するプロデューサを右クリックし、「削除」を選択します。

  3. 「削除の確認」ダイアログで、「はい」をクリックします。

64.3 ページへのポートレットの追加

ポートレットをFrameworkアプリケーションのページに配置するには、「アプリケーション・リソース」パネルまたは「リソース・パレット」からポートレットをドラッグして該当のページの上にドロップするだけですみます。

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

開始する前に

ポートレットをページに配置するという簡単な操作を実行する前に、いくつかの準備的な手順を実行する必要があります。次のような内容が含まれます。

  1. Frameworkアプリケーションの作成。詳細は、第5.2.1項「Frameworkアプリケーションの作成方法」を参照してください。

  2. アプリケーション・ページの作成。詳細は、第5.3項「ポータルへのページの追加」を参照してください。

  3. アプリケーションへのポートレット・プロデューサの登録。詳細は、第64.2項「WebCenter Portal: Frameworkアプリケーションへのポートレット・プロデューサの登録」を参照してください。

  4. 消費しようとするポートレットの一部が、独自の認証を処理するアプリケーションに属していることがあります。このような場合は、アプリケーションを外部アプリケーションとして登録し、その提供元のポートレット・プロデューサに対して識別する必要があります。詳細は、第69章「WebCenter Portal: Frameworkアプリケーションの保護」を参照してください。

  5. 消費しようとするポートレットの一部が、Secure Socket Layer (SSL)対応のプロデューサに属していることもあります。SSL対応プロデューサにアクセスしようとすると、「セキュリティ・アラート」ダイアログが表示され、プロデューサの証明書を表示して信頼できる証明書リストに追加するように要求されることがあります。「セキュリティ・アラート」ダイアログが表示されるのは、プロデューサが、広く受け入れられていない認証局によって発行されたセキュリティ証明書を使用する場合のみです。このようなプロデューサからのポートレットを消費するには、まず、プロデューサのセキュリティ証明書をキーストアに追加する必要があります。詳細は、第69.14項「キーストアへのカスタム証明書の登録」を参照してください。

64.3.1 ページへのポートレットの追加方法

アプリケーション・ナビゲータの「アプリケーション・リソース」パネルまたは「リソース・パレット」からポートレットをドラッグ・アンド・ドロップすると、ポートレットをページに追加できます。

ポートレットをページに追加する手順は次のとおりです。

  1. アプリケーション・ナビゲータで、ポートレットを追加するページを含むアプリケーション(.jspxファイル)を開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルまたは「リソース・パレット」の「接続」ノードで、次を実行します。

    • プロデューサがWSRPプロデューサの場合は、「WSRPプロデューサ」ノードを開きます。

    • プロデューサがPDK-Javaプロデューサの場合は、「Oracle PDK-Javaプロデューサ」ノードを開きます。

  5. ページに追加するポートレットを含むポートレット・プロデューサのノードを開きます。

    選択したプロデューサの下に、そのプロデューサに含まれているすべてのポートレットが表示されます。

  6. プロデューサ・ノードからページに直接ポートレットをドラッグします。

    ポートレットをページのフォーム上にドラッグする必要があります。ドラッグしない場合は、ポートレットを含むフォームを作成するように求めるダイアログが表示されます。次のいずれかを選択します。

    • ページにリッチ・クライアント・コンポーネントが含まれる場合は、「ADF Faces」 - 「フォーム」。これにより、af:formコンポーネントがページに追加されます。

    • ページにHTMLコンポーネントが含まれる場合(10.1.3.2ページにアップグレードされた場合など)は、「JSF HTML」 - 「フォーム」。これにより、ドキュメントの囲みタグに応じて、h:formまたはtr:formコンポーネントがページに追加されます。

    ポートレットに有効でないため、「HTML」 - 「フォーム」は選択しないでください。


    注意:

    Show Detail Frameコンポーネントには、子コンポーネントとしてOracle ADF Facesコンポーネントまたはタスク・フローを含めることができます。ただし、ポートレットには、Show Detail Frameコンポーネントによって提供されるヘッダーに似たヘッダーが含まれており、Panel Customizableコンポーネントに直接追加できます。Show Detail Frameコンポーネントにポートレットを含めることの利点はこれ以上ありません。



注意:

PeopleSoftポートレットをFrameworkアプリケーションのページに追加する場合は、renderPortletInIFrameポートレット・タグ属性をtrueに設定する必要があります。

詳細は、第64.4項「ポートレット・タグの属性値の設定」を参照してください。


64.3.2 ページへのポートレットの追加時の処理

ポートレットをページに追加すると、ポートレット・タグ(adfp:portletまたはadfph:portlet)がページ・ソースに追加されます。これが、ポートレット・コンポーネントを表すタグです。このタグには、プロパティ・インスペクタを使用して、またはページ・ソースで編集し、ポートレットの動作や外観をさらに制御できる属性が含まれています。これらの属性の詳細は、第64.4項「ポートレット・タグの属性値の設定」を参照してください。

使用されるポートレット・タグのタイプは、次の条件によって決まります。

  • プロジェクトがリッチ・クライアント・コンポーネント専用に構成されている場合は、adfp:portletタグが使用されます。

  • プロジェクトがTrinidadコンポーネント専用に構成されている場合は、adfph:portletタグが使用されます。

  • プロジェクトがリッチ・クライアントとTrinidadコンポーネントの両方用に構成されている場合は、使用するポートレット・タグを選択できるダイアログが表示されます。

  • プロジェクトがリッチ・クライアントまたはTrinidadコンポーネント用に構成されていない場合は、adfp:portletタグが使用され、プロジェクトがリッチ・クライアント・コンポーネント用に自動的に構成されます。

これは、ポートレットのルック・アンド・フィールがページ上のその他のコンポーネントのルック・アンド・フィールに一致するようにするためです。たとえば、第5.3項「ポータルへのページの追加」の説明に従ってページを作成すると、そのページはリッチ・クライアント・ページになります。この場合は、adfp:portletタグを使用してポートレットが追加されます。

例64-1 ポートレットを含むリッチ・クライアント・ページ

<?xml version='1.0' encoding='US-ASCII'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:adfp="http://xmlns.oracle.com/adf/faces/portlet">
  <jsp:directive.page contentType="text/html;charset=US-ASCII"/>
  <f:view>
    <af:document>
      <af:form>
        <adfp:portlet value="#{bindings.Portlet11_1}"
                      id="portlet1"
                      renderPortletInIFrame="true"/>
      </af:form>
    </af:document>
  </f:view>
</jsp:root>

アップグレードされた10.1.3.2アプリケーションまたはTrinidadコンポーネントを含むアプリケーションを使用している場合は、リッチ・クライアント・コンポーネントではなく、HTMLコンポーネントがアプリケーションで使用されます。このような場合は、ポートレットをページにドラッグすると、adfph:portletタグが使用されます。

例64-2 ポートレットを含むTrinidadページ

<?xml version='1.0' encoding='US-ASCII'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
          xmlns:h="http://java.sun.com/jsf/html"
          xmlns:f="http://java.sun.com/jsf/core"
          xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
          xmlns:tr="http://myfaces.apache.org/trinidad"
          xmlns:adfph="http://xmlns.oracle.com/adf/faces/portlet/html">
  <jsp:directive.page contentType="text/html;charset=US-ASCII"/>
  <f:view>
    <tr:document title="Title 1">
      <tr:form>
        <adfph:portlet value="#{bindings.Portlet12_1}"
                       id="portlet1"/>
      </tr:form>
    </tr:document>
  </f:view>
</jsp:root>

アプリケーション・ページに1つ以上のコンポーザ・コンポーネントが含まれている場合は、これがポートレットの配置場所に影響を与えることがあります。たとえば、「構造」パネルで、cust:panelCustomizableタグを含むページに配置されているポートレットは、例64-3のように配置されます。

例64-3 ポートレット・タグの階層配置

af:document
  af:form
   cust:panelCustomizable
     adfp:portlet

注意:

ADF Facesリッチ・クライアント・コンポーネントを同一ページ上にあるHTMLまたはTrinidadコンポーネントと混在させないことをお薦めします。混在させると、実行時に予期しない結果が発生する可能性があります。したがって、リッチ・クライアント・ポートレットをコンポーザHTMLコンポーネント内に、またはHTMLポートレットをコンポーザ・リッチ・クライアント・コンポーネント内に配置しないでください。


コンポーザ・タグの詳細は、第20章「コンポーザを使用したページの実行時編集の有効化」を参照してください。


注意:

OmniPortletのインスタンスをページ上にドロップする場合、プロパティ・インスペクタを開き、「表示モード」カテゴリの下のAllModesSharedScreenfalse (デフォルト値)に設定されていることを確認します。このプロパティをtrueに設定すると、OmniPortletウィザードでOmniPortletの特定のセクションを編集できなくなることがあります。


ポートレットをページに追加すると、ポートレット・バインディングがページ定義ファイルに追加されます。このポートレット・バインディングには、ポートレットが自動的にパラメータ変更やイベントをリスニングする必要があるかどうかを指定する属性が含まれます(例64-4)。

例64-4 ポートレット・バインディング

<portlet id="LotteryPortlet2_1"
         portletInstance="oracle/adf/portlet/SamplePortlets/ap/Ei7default_03ba18be_012d_1000_8002_0ae8827e9493"
         class="oracle.adf.model.portlet.binding.PortletBinding"
         retainPortletHeaders="false"
         listenForAutoDeliveredPortletEvents="true"
         listenForAutoDeliveredParameterChanges="true"
         xmlns="http://xmlns.oracle.com/portlet/bindings"/>

これらの属性をtrue (デフォルト)に設定すると、ポートレットのサポート対象のパラメータやイベントに一致する(またはサポート対象のパラメータやイベントのいずれかの別名に一致する)パラメータやイベントが発生した場合にポートレットが自動的に更新されます。これらの属性をfalseに設定してこのパラメータとイベントの自動リスニングをオフにすることもできます。たとえば、ページに、異なるソースからの値を必要とする、同一ポートレットの複数のインスタンスが含まれる場合があります。パラメータとイベントの自動リスニングを無効化した場合は、ポートレット・ワイヤリングを手動で構成する必要があります。

64.3.3 実行時の処理

ポートレットをページに配置したら、ページを右クリックして「実行」を選択します。これにより、ページが表示され、デフォルト・ブラウザでJDeveloperの統合WLSを使用してポートレットが実行されます。ポートレットによっては、追加の実行時構成が必要になることもあります。特に、OmniPortletポートレットまたはWebクリッピング・ポートレットのインスタンスの内容は実行時に定義されます。OmniPortletの詳細は、第65章「OmniPortletを使用したポートレットの作成」を参照してください。Webクリッピング・ポートレットの詳細は、第66章「Webクリッピングを使用したコンテンツ・ベースのポートレットの作成」を参照してください。ポートレットの概要は、第58章「ポートレットの概要」を参照してください。

編集モード(Frameworkアプリケーションでは、ポートレット・ヘッダーで「パーソナライズ」アイコン(鉛筆アイコン)としてレンダリングされる)を備えたポートレットを実行する場合、認証されたユーザー(つまり、ログインしているユーザー)にのみ、「パーソナライズ」アイコンが表示されます。匿名ユーザーまたはパブリック・ユーザーには、ポートレットをパーソナライズするためのオプションは表示されません。ポートレットを消費するアプリケーションで、ユーザーがポートレットのビューをパーソナライズできるようにするには、あらかじめなんらかの形態のセキュリティを実装しておく必要があります。ポートレットおよびページを作成する開発者は、アプリケーションに完全なセキュリティ・モデルを作成せずに、ポートレットの編集モードをテストする必要があることがあります。セキュリティを追加してポートレットの編集モードのテストを有効化する方法は、第69.12項「ポートレット・パーソナライズをテストするための基本認証の構成」を参照してください。


注意:

実行時にページにポートレットを追加できるようにするには、設計時にそのページに1つ以上ポートレットを追加する必要があります。設計時にポートレットを追加すると、DataBindings.cpxファイルの<definitionFactories>要素に次のエントリが追加されます。

<factory nameSpace="http://xmlns.oracle.com/portlet/bindings"
className="oracle.adf.model.portlet.binding.PortletBindingDefFactoryImpl"/>
<dtfactory className="oracle.adfdtinternal.view.faces.portlet.PortletDefinitionDTFactory"/>

実行時におけるポートレットの消費を可能にするには、このエントリが必要です。


あるポートレットでパラメータやイベントがサポートされており、パラメータやイベントの自動リスニングが有効な場合は、サポート対象のパラメータおよびイベント(または別名が指定されているパラメータやイベント)に対して変更を行うと、ポートレットが自動的に更新されます。

ポートレットを外部アプリケーションに関連付けられたプロデューサから実行すると、ログイン情報を更新するためのリンクが表示されます。リンクをクリックすると、外部アプリケーションの資格証明を入力するための資格証明プロビジョニング・ページが表示されます。有効な資格証明を指定すると、ポートレットにより、コンテンツが適切に表示されます。外部アプリケーションの詳細は、第69.13項「外部アプリケーションの使用」を参照してください。

64.4 ポートレット・タグの属性値の設定

ページのソース・コード・ビューでは、各ポートレットは、adfp:portletタグ(またはadfph:portletタグ)で表示され、これには必須属性およびオプション属性のセットが含まれています。必須属性であるvalueおよびportletTypeはOracle WebCenter Frameworkによって自動的に設定され、変更できません。オプション属性値は、ポートレットにその属性のサポートが組み込まれている場合に適用されます。たとえば、isAboutModeAvailabletrueに設定できますが、ポートレットに情報モードが定義されていない場合、この属性設定はポートレットに影響を与えません。

また、ポートレットでは、スタイル関連属性のセットがサポートされています。これらの属性については、第22.10項「コンポーネントへのスタイルの適用」で詳しく説明しています。

ポートレット・タグでは多数の属性が使用されます。これらの属性は、設計時にJDeveloperプロパティ・インスペクタまたはソース・コードのいずれかでタグの属性として設定できます。

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

64.4.1 プロパティ・インスペクタを使用してポートレット・タグに属性値を設定する方法

プロパティ・インスペクタには、ソース・コードを自身で編集することなく、ポートレット・タグに属性値を設定するための迅速で簡単な方法が用意されています。

プロパティ・インスペクタを使用してポートレット・タグの属性値を設定する手順は次のとおりです。

  1. アプリケーション・ナビゲータで、ポートレットが表示されるページを含むアプリケーションを開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. デザイン・ビューで、設定する属性を持つポートレットを選択します。

  5. プロパティ・インスペクタで、適切なタブをクリックし、必要な属性を設定します。

    この手順を必要な回数繰り返します。

  6. 変更を保存します。

  7. 行った変更をテストするには、ページを右クリックして「実行」を選択します。

64.4.2 ポートレット・タグの属性値をソース・コードで設定する方法

ソース・コードを使用する場合は、ポートレット・タグの属性値をここで直接設定できます。

ポートレット・タグの属性値をソース・コードで設定する手順は次のとおりです。

  1. アプリケーション・ナビゲータで、ポートレットが表示されるページを含むアプリケーションを開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. デザイン・ビューで、設定する属性を持つポートレットを選択します。

  5. 「ソース」タブをクリックします。選択したポートレットがソース・コードで強調表示されます。

  6. 変更をソース・コードに直接加えます。例64-5に、編集済のポートレット・タグを示します。

    例64-5 編集済のポートレット・タグ

    <adfp:portlet value="#{bindings.portlet1}"
                  portletTypes="/oracle/adf/portlet/WsrpPortletProducer1/applicationPortlets/
                               E0default_b452f828_010a_1000_8002_82235f57eaa8"
                  allModesSharedScreen="true"
                  isMaximizable="true"
                  isMinimizable="true"/>
    
  7. 変更を保存します。

  8. 行った変更をテストするには、ページを右クリックして「実行」を選択します。

64.4.3 ポートレット・タグの共通属性

表64-1 に、ポートレット・タグの共通属性を示します。

表64-1 ポートレット・タグの共通属性

属性 説明

id

テキスト文字列。次に例を示します。

id="newsBrief"

値はHTMLで許容されている構文のサブセットに従う必要があります。

  • 長さがゼロの文字列にすることはできません。

  • 最初の文字はASCII文字(A-Z a-z)またはアンダースコア(_)である必要があります。

  • 後続の文字は、ASCII文字または数字(A-Z a-z 0-9)、アンダースコア(_)、ダッシュ(-)である必要があります。

ポートレットの一意の識別子。この属性には、ページへのポートレットの追加時に、デフォルトで一意の値が移入されます。

title

テキスト文字列。次に例を示します。

title="Announcements"

ポートレット・タイトル。これはポートレット・ヘッダーに表示されます。

ここに指定した値は、他の場所(ポートレット・マークアップなど)に指定されたタイトルよりも優先されます。

ここに値を指定しない場合、ポートレットはポートレット・マークアップ(レスポンス)からそのタイトルを抽出します。

ここまたはポートレット・マークアップに値を指定しない場合は、ポートレットはポートレット定義からタイトルを抽出します。

注意: 設計時に値をtitle属性に指定すると、編集モードまたはデフォルト編集モードで実行時にタイトルに行われた変更は無視されます。

width

使用可能な領域をピクセルまたはパーセンテージで表した数値。

  • ピクセルの場合は、npxを入力します。たとえば次のようになります。

    width = 300px
    
  • パーセンテージの場合は、n%を入力します。たとえば次のようになります。

    width = 50%
    

ポートレット表示で許可される領域の幅。

displayScrollBarautoまたはtrueに設定した場合、ポートレットの実際の幅がここに入力したwidth値を超えると、スクロールバーが表示されます。displayScrollBarfalseに設定した場合、ポートレットの実際の幅がwidth属性に指定されている値を超えると、width属性の値が適用され、ポートレットのコンテンツは切り捨てられます。

height

ピクセルで表した数値。たとえば次のようになります。

height = 300px

ポートレット表示で許可される領域の高さ。

displayScrollBarautoまたはtrueに設定した場合、ポートレットの実際の高さがここに入力したheight値を超えると、スクロールバーが表示されます。displayScrollBarfalseに設定した場合、ポートレットの実際の高さがheight属性に指定されている値を超えると、height属性の値が適用され、ポートレットのコンテンツは切り捨てられます。

icon

イメージのURI。次に例を示します。

icon="coffee.png"

プロパティ・インスペクタで、フィールドの隣の「プロパティ・メニュー」アイコンをクリックし、「編集」を選択して、必要なイメージを特定して選択します。

値は絶対URIまたは現在のページやアプリケーションのコンテキスト・ルートに対して相対的なURI(解決可能)である必要があります。前の例に示したURIはアプリケーションのコンテキスト・ルートに格納されているため、フルパスは必要ありません。

ポートレット・ヘッダーのポートレット・タイトルの左側に表示されるアイコンとして使用するイメージの位置を指定するURI。このアイコンを使用すると、コンテンツ・インジケータとしてブランドを強化するなど、そのポートレットの目的を示すことができます。

partialTriggers

1つ以上のコンポーネントID。次に例を示します。

partialTriggers="_id1 _id2 componentID5"

各コンポーネントIDは、空白で区切ります。

部分的な更新をトリガーするコンポーネントのID。ポートレットは、指定されたトリガー・コンポーネントをリスニングします。トリガー・コンポーネントが更新のためのトリガー・イベントを受け取ると、ポートレットも自身の更新をリクエストします。


64.4.4 ポートレット・タグの外観属性

表64-2に、ポートレット・タグの外観属性を示します。

表64-2 ポートレット・タグの外観属性

属性 説明

expansionMode

minimized
normal

デフォルト: normal

ポートレットのデフォルトの状態は次のとおりです。

  • minimized: ポートレットのデフォルト表示モードは閉じた状態(最小化)です。

  • normal: ポートレットのデフォルトの表示モードは、閉じた状態になることも、ページ幅まで開かれることもありません。

allModesSharedScreen

auto
false
true

デフォルト: auto

ポートレット・モードが変更された場合に、ポートレットが配置されているページではない新しいページに新しいモードがレンダリングされるかどうかを指定します。

  • auto: portlet.xmlファイルのcom.oracle.portlet.requireIFrameコンテナ実行時オプションにより、インライン・フレーム(IFRAME)を要求するようにリモート・ポートレットが構成されている場合は、すべてのポートレット・モードがインライン表示されます。これにより、Oracle Bridgeポートレットがインライン表示されます。

  • false: 「表示」モード(JSR 286)または「表示」モード(PDK-Java)を除くすべてのポートレット・モードが別々のページにレンダリングされます。これは、OmniPortletやWebクリッピング・ポートレットなどのポートレットに役立ちます。これらのポートレットでは、「表示」モード以外のモードは、ポートレットが常駐するページ以外のページに表示される必要があるためです。

  • true: すべてのポートレット・モードがインラインで表示されます。モードは同じページ上で切り替わります。つまり、この属性を指定すると、1つのページのコンテキスト内ですべてのポートレット・モードを表示できます。

renderPortletInIFrame

auto
false
true

デフォルト: auto

ポートレットがIFRAMEにレンダリングされるかどうかを指定します。

  • auto: 可能な場合、ポートレット・コンシューマはポートレット・マークアップをリライトし、ADFページに正しくレンダリングされるようにします。可能でない場合、ポートレットはIFRAMEにレンダリングされます。

  • false: ポートレットはIFRAMEにレンダリングされることはありません。

  • true: ポートレットは常にIFRAMEにレンダリングされます。

詳細は、第64.4.12項「IFRAMEに関する必要な知識」を参照してください。

displayScrollBar

auto
false
true

デフォルト: auto

スクロール・バーを表示するかどうかを指定します。

  • auto: ポートレット・コンテンツが指定のwidthheightに収まらない場合は、スクロール・バーがレンダリングされます。

  • false: スクロール・バーがレンダリングされることはありません。ポートレット・コンテンツが指定のheightwidthに収まらない場合は、ポートレットが実際のサイズにレンダリングされます。

  • true: 常にスクロール・バーがレンダリングされます。

displayHeader

false
true

デフォルト: true

ポートレット・ヘッダーを表示するかどうかを指定します。

  • false: ポートレット・ヘッダーは表示されません。通常ヘッダーに表示されるアイコンとリンクは非表示になります。isSeededInteractionAvailabletrueに設定した場合、ユーザーは、ポートレット上にマウスを置くことで、ポートレットのメニューおよびアイコンにアクセスできます。フェードインおよびフェードアウトのツールバーが表示され、ここからユーザーは「処理」メニュー・オプションを選択できます。

  • true: ポートレット・ヘッダーが表示されます。したがって、ヘッダーをベースにしたアイコンおよびリンクが表示されます。

displayShadow

false
true

デフォルト: true

ポートレットの周りに影の装飾を表示するかどうかを指定します。

  • false: 影の装飾は表示されません。

  • true: 影の装飾が表示されます。

rendered

false
true

デフォルト: true

ポートレットがレンダリングされるかどうかを指定します。

  • false: ポートレットはレンダリングされません。出力はレンダリングされません。

  • true: ポートレットがレンダリングされます。これが推奨される設定です。この属性をfalseに設定すると、ページ実行時に問題が発生します。

background

dark
light
medium

デフォルト: medium

ポートレットで使用されるスキンに適用されるスタイル・セレクタを指定します。

  • dark: darkスタイル・セレクタをスキンに適用します。

  • light: lightスタイル・セレクタをスキンに適用します。

  • medium: mediumスタイル・セレクタをスキンに適用します。

これにより、ページ上の各ポートレットに異なるルック・アンド・フィールを適用する方法が提供されます。

shortDesc

テキスト文字列。次に例を示します。

shortDesc="Portlet for entering display text in place."

ポートレットの短い説明。

displayActions

always
onHover

デフォルト: always

ポートレットのシード済相互作用を表示するかどうかを指定します。

  • always: シード済相互作用は常に表示されます。

  • onHover: シード済相互作用は、ユーザーがマウスをポートレット上で移動する場合に表示されます。

showMoveAction

menu
none

デフォルト: menu

ポートレットの「アクション」メニューで「移動」コマンドを表示するかどうかを指定します。

  • menu: ポートレットの「アクション」メニューに「移動」コマンドが表示されます。

  • none: 「移動」コマンドは表示されません。

「移動」コマンドの動作は、設計時と実行時では違いがあります。詳細は、第64.4.11項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。

showRemoveAction

menu
none

デフォルト: menu

「削除」アイコンをポートレット・クロム上に表示するかどうかを指定します。

  • menu: ポートレットの「アクション」メニューに「削除」コマンドが表示されます。

  • none: 「削除」アイコンは表示されません。

「削除」アイコンの動作は、設計時と実行時では違いがあります。詳細は、第64.4.11項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。

注意: この属性は、adfp:portletタグでのみ使用可能で、adfph:portletタグでは使用できません。

showResizer

always
never

デフォルト: always

ポートレットの右下隅にサイズ変更ハンドルを表示するかどうかを指定します。

  • always: 常にサイズ変更ハンドルが表示されます。

  • never: サイズ変更ハンドルは表示されません。

注意: この属性は、adfp:portletタグでのみ使用可能で、adfph:portletタグでは使用できません。

showMinimizeAction

chrome
none

デフォルト: chrome

ポートレット・クロム上で「最小化」アイコンを表示するかどうかを指定します。

  • chrome: 「最小化」アイコンがポートレット・クロム上に表示されます。

  • none: 「最小化」アイコンは表示されません。

「最小化」アイコンの動作は、設計時と実行時では違いがあります。詳細は、第64.4.11項「最大化、最小化、リストアおよび移動に関する必要な知識」を参照してください。


64.4.5 ポートレット・タグの動作属性

表64-3に、ポートレット・タグの動作属性を示します。

表64-3 ポートレット・タグの動作属性

属性 説明

partialTriggers

1つ以上のコンポーネントID。次に例を示します。

partialTriggers="_id1 _id2 componentID5"

各コンポーネントIDは、空白で区切ります。

部分的な更新をトリガーするコンポーネントのID。ポートレットは、指定されたトリガー・コンポーネントをリスニングします。トリガー・コンポーネントが更新のためのトリガー・イベントを受け取ると、ポートレットも自身の更新をリクエストします。

submitUrlParamters

false
true

デフォルト: false

ポートレットを配置するページを指すポートレット・リンクのパラメータをページで使用できるようにするかどうかを指定します。

  • false: パラメータはページで使用できません。これらのパラメータは、リクエストを開始したポートレット内部でのみ使用可能です。

  • true: パラメータはコンテナ・ページで使用可能です。


64.4.6 ポートレット・タグのポートレット・モード属性

ポートレット・モード属性は、編集モードへの切替えなど、モード切替えUIアクションのレンダリングを制御します。特定のモードでポートレットをレンダリングできるかどうかは、ポートレットでサポートされているモードおよびユーザー認可によって決まります。たとえば、isCustomizeModeAvailable属性がtrueに設定されていても、そのアクションがポートレットでサポートされていなければ、この属性設定はポートレットに影響を与えません。

ポートレット・モード属性は、表64-4で説明されているように、trueまたはfalseに評価される値バインディング式です。

  • trueは、その名前のモードでポートレットをレンダリングできることを意味します。

  • falseは、その名前のモードでポートレットをレンダリングできないことを意味します。

表64-4 ポートレット・タグのポートレット・モード属性

属性 説明

isAboutModeAvailable

false
true

デフォルト: true

ポートレットの「アクション」メニューに「情報」コマンドをレンダリングするかどうかを指定します。

ユーザーは「情報」を選択して、ポートレットの情報モードを起動します。

isConfigModeAvailable

false
true

デフォルト: true

JSR 286ポートレットの「アクション」メニューに「構成」コマンドをレンダリングするかどうかを指定します。

ユーザーは「構成」を選択して、ポートレットの「構成」設定を開きます。

isCustomizeModeAvailable

false
true

デフォルト: true

ポートレット・ヘッダーに「カスタマイズ」アイコンをレンダリングするかどうかを指定します。

サイト管理者は「カスタマイズ」を選択して、ポートレットのデフォルトのパーソナライズ・データを編集します。

isDetailModeAvailable

false
true

デフォルト: true

PDK-Javaポートレットの「アクション」メニューに「詳細」コマンドをレンダリングするかどうかを指定します。

ユーザーは「詳細」を選択して、ポートレットを全画面モードで開きます。

isHelpModeAvailable

false
true

デフォルト: true

ポートレットの「アクション」メニューに「ヘルプ」コマンドをレンダリングするかどうかを指定します。

ユーザーは「ヘルプ」を選択して、ポートレットの「ヘルプ」ページを開きます。

isPrintModeAvailable

false
true

デフォルト: true

JSR 286ポートレットの「アクション」メニューに「印刷」コマンドをレンダリングするかどうかを指定します。

ユーザーは「印刷」を選択して、ポートレットのプリンタ優先バージョンを表示します。

isNormalModeAvailable

false
true

デフォルト: true

ポートレットの「アクション」メニューに「リフレッシュ」コマンドをレンダリングするかどうかを指定します。

ユーザーは「リフレッシュ」を選択して、ページ上のその他のコンテンツに関係なく、ポートレットを再描画します(これは、部分ページ・リフレッシュとも呼ばれます)。

isPersonalizeModeAvailable

false
true

デフォルト: true

ポートレット・ヘッダーに「パーソナライズ」アイコンをレンダリングするかどうかを指定します。

ユーザーは「パーソナライズ」を選択して、ポートレットの個人ビューを変更します。このモードは、規格に基づいたJavaポートレット(JSR 286)ウィザードで「編集」モードを選択する操作に相当します。

「パーソナライズ」アイコンは、認証されたユーザー(つまり、ログインしているユーザー)にのみ表示されます。パブリック・ユーザーまたは認証されていないユーザーには表示されません。ユーザーがポートレット・ビューをパーソナライズできるようにするには、なんらかの形のアプリケーション・セキュリティを実装する必要があります。

ポートレットを作成する開発者が、アプリケーション用の完全なセキュリティ・モデルを作成せずにパーソナライズ・モードをテストする場合は、第69.12項「ポートレット・パーソナライズをテストするための基本認証の構成」を参照してください。

注意: パーソナライズ設定が一般的に行われるのは、ポートレット・タイトルです。title属性の値を指定することにより、ポートレット・タイトルを設計時に設定できます。ただし、設計時にtitle属性に値を指定すると、実行時にポートレット・タイトルのパーソナライズおよびカスタマイズができなくなることを考慮してください。

isPreviewModeAvailable

false
true

デフォルト: false

ポートレット・コンテンツのプレビューを有効化するかどうかを指定します。

このモードはFrameworkアプリケーション内での特定の用途はありませんが、Oracle Portalのポートレット・リポジトリ内で使用され、拡大鏡アイコンとしてレンダリングされます。ユーザーはこのアイコンをクリックして、ポートレットをプレビューします。


64.4.7 ポートレット・タグのスタイル属性

表64-5に、ポートレット・タグのスタイル属性を示します。

表64-5 ポートレット・タグのスタイル属性

属性 説明

contentStyle

1つ以上のCSSスタイル。

これらは少なくともCSS 2.0に準拠し、次の書式とする必要があります。

contentStyle="color:rgb(255,0,255); font-family:Arial Helvetica Geneva sans-serif;font-size:large;"

ポートレット・コンテンツに適用するCSSスタイル。

ここに入力した値は、inlineStyle属性で指定されているスタイルおよび特定のポートレット・インスタンスのCSSまたはスキンで指定されているスタイルより優先されます。詳細は、「contentStyleプロパティおよびinlineStyleプロパティの概要」を参照してください。

inlineStyle

1つ以上のCSSスタイル。

これらは少なくともCSS 2.0に準拠し、次の書式とする必要があります。

inlineStyle="color:rgb(255,0,255); font-family:Arial Helvetica Geneva sans-serif;font-size:large;"

ポートレット全体に適用するCSSスタイル。

ここに入力した値は、特定のポートレット・インスタンスのCSSまたはスキンで指定されているスタイルより優先されます。詳細は、「contentStyleプロパティおよびinlineStyleプロパティの概要」を参照してください。


64.4.8 ポートレット・タグのバインディング属性

表64-6に、ポートレット・タグのバインディング属性を示します。

表64-6 ポートレット・タグのバインディング属性

属性 説明

binding

マネージドBeanの名前。次に例を示します。

binding="#{frameActionsBean.Binding}"

プロパティ・インスペクタで、フィールドの隣の「プロパティ・メニュー」アイコンをクリックし、「編集」を選択してマネージドBeanを選択し、関連するマネージドBeanプロパティを指定します。

コンポーネント・インスタンスを格納するためのバインディング参照。バインディング参照によって、ポートレットのインスタンスがマネージドBeanプロパティにバインドされます。マネージドBeanは、JSF faces-config.xmlファイル内に登録されているアプリケーションで使用されるJavaBeansです。


64.4.9 ポートレット・タグのカスタマイズ属性

表64-7に、ポートレット・タグのカスタマイズ属性を示します。

表64-7 ポートレット・タグのカスタマイズ属性

属性 説明

customizationAllowed

false
true

デフォルト: true

このポートレットでポートレット・タグの設計時のカスタマイズを許可するかどうか指定します。

customizationAllowedBy

テキスト文字列

設計時のカスタマイズが許可されているロール。この属性では、カスタマイズは許可できるものの、その実際の実行者を制限します。


64.4.10 ポートレット・タグのその他の属性

表64-8に、ポートレット・タグのその他の属性を示します。

表64-8 ポートレット・タグのその他の属性

属性 説明

iframeDtd

loose
none
strict

デフォルト: loose

DTDがある場合、ポートレット・コンテンツがIFRAME内にレンダリングされると作成されるdoctype宣言にどのDTDを指定するのかを指定します。

  • none: DTDは指定されません。これにより、HTMLコンテンツはHTMLに技術的に準拠する必要があるという制限が緩和されます。ブラウザでは、通常、このようなHTMLをうまく処理します。ただし、ポートレットを消費するADF Facesページからの一部のCSSスタイル・シートも、正常に機能するようにIFRAMEドキュメントにインポートされるため、loose DTDまたはstrict DTDにコンテンツが適合していることを宣言する必要がある場合があります。

  • loose: DTD http://www.w3.org/TR/html/loose.dtdが使用されます。

  • strict: DTD http://www.w3.org/TR/html/strict.dtdが使用されます。


64.4.11 最大化、最小化、リストアおよび移動に関する必要な知識

開発環境のニーズに対応するため、Show Detail Frameコンポーネントおよびportletコンポーネントの「最小化」、「最大化」、「リストア」および「移動」の各種アクションの動作は、設計時と実行時で異なります。設計時には、これらのアクションは1つのWLSセッション内では永続しますが、セッションを越えて永続することはありません(セッションとは、WLSの開始から停止までの時間を表します)。実行時には、これらのアクションは、1つのWLSセッション内でも、セッションを越えても永続します。

この違いは、設計時におけるアプリケーション・ページの自動リセットを可能にするために取り入れられたものです。

実行時にセッションを越えて永続する必要がない場合は、アプリケーションのweb.xmlファイルを変更するだけで、この永続性を無効化できます。アプリケーションのweb.xmlファイル内で、次のパラメータ設定を見つけます(例64-6)。

例64-6 アプリケーションのweb.xmlファイル内の永続性設定

<context-param>
  <param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
  <param-value>oracle.adfinternal.view.faces.change.HybridChangeManager</param-value>
</context-param>

これを次のコードで置き換えます(例64-7)。

例64-7 アプリケーションのweb.xmlファイルでの実行時永続性の無効化

<context-param>
  <param-name>oracle.adf.view.faces.CHANGE_PERSISTENCE</param-name>
  <param-value>oracle.adf.view.faces.change.SessionChangeManager</param-value>
</context-param>

アプリケーションにセキュリティが実装されている場合、「最小化」、「最大化」、「リストア」および「移動」のアクションは、カスタマイズ権限を持つユーザーのみに表示されます。これらのアクションは、パーソナライズ権限を持つユーザーには表示されません。カスタマイズ権限を持つユーザーは、設計時に次の手順を実行することにより、これらのアクションの効果をテストできます。

  1. JDeveloperの統合WLSを使用して、アプリケーション・ページを実行します。

  2. 管理者としてログインします。

  3. ポートレットを最大化します。ポートレットを各所に移動します。関連するアクション・コマンドを使用して、自由に変更を行います。

  4. いったんログアウトしてからユーザーとしてログインし、アクションの効果を確認します。

64.4.12 IFRAMEに関する必要な知識

ポートレットをページに直接レンダリングすると、インライン・フレーム(IFRAME)に配置した場合に比べて、ユーザーが使用しやすくなります。ただし、ポートレット・マークアップのIFRAMEへの配置が必要な場合があります。renderPortletInIFrame属性を使用して、ポートレットをIFRAMEにレンダリングするかどうかを指定できます。

renderPortletInIFrame属性のデフォルトの設定は、autoです。これにより、可能な場合にはポートレット・コンシューマがポートレット・マークアップをリライトして、IFRAMEを必要とすることなく、Oracle ADFページに正しくレンダリングされるようになります。

ただし、次の状況では、ポートレットはIFRAME内にレンダリングされます。

  • マークアップを解析できないためパーサーにより例外がスローされる場合

  • ポートレット・コードにマルチパート・フォーム・ポストが含まれる場合

  • ポートレット・コードにファイル・アップロード要素が含まれる場合

  • ポートレット開発者が、portlet.xmlファイルのcom.oracle.portlet.requireIFrameコンテナ実行時オプションをtrueに設定することにより、ポートレットをIFRAMEにレンダリングすることを明示的にリクエストした場合


    注意:

    Oracle JSF Portlet Bridgeを使用して作成されたポートレットは、JavaScriptの問題により直接Oracle ADFページにレンダリングするには複雑すぎるため、requireIFrameコンテナ実行時オプションはtrueに設定されます。


場合によっては、ポートレット・コンシューマが、ポートレット・マークアップおよびJavaScriptをリライトできず、ポートレットをOracle ADFページに適合できない場合があります。その場合は、ボタンが機能しなかったり、コンソールでJavaScriptエラーが発生するなど、ポートレットが予想どおりに動作しない可能性があります。そのような場合には、renderPortletInIFrame属性をtrueに設定し、ポートレットが常にIFRAMEにレンダリングされるようにする必要があります。

次のような場合に、renderPortletInIFrametrueに設定します。

  • ポートレット・コードがJavaScriptで要素名を動的に構築する場合

  • ポートレット・コードが複数のフォームを使用しており、JavaScriptで索引によりそれらを参照する場合

  • JavaScriptライブラリ・コードでポートレット内の要素を参照する場合


注意:

ポートレットをIFRAME内にレンダリングした場合、window.locationを操作すると予期しない結果が発生することがあります。ポートレットでwindow.locationを使用する場合は、ポートレットがIFRAME内部にレンダリングされる場合に対応できるだけの堅牢性がJavaScriptに備わっていることを確認してください。


たとえばアクセシビリティの理由からポートレットがIFRAMEにレンダリングされないようにする場合は、renderPortletInIFrame属性をfalseに設定します。ただし、IFRAME内にレンダリングされないポートレットからのHTMLマークアップは、Oracle ADFページ上の他のコンポーネントを妨害することがあります。

IFRAMEの使用に関するアクセシビリティ関連の詳細は、第2.9項「WebCenterアクセシビリティ機能の概要」を参照してください。

64.5 ポートレットのコピー

ポートレットをコピーする場合、ポートレットとそのコピーは同じアプリケーション内に置く必要があります。たとえば、アプリケーション内のあるページからそのアプリケーションの同一プロジェクト内の別のページへ、または同じページ上のある場所から別の場所へ、ポートレットをコピーできます。また、ターゲット・プロジェクトがポートレット消費用に構成されている場合は、同一アプリケーション内のあるプロジェクトから別のプロジェクトにもポートレットをコピーできます。コピーは同じポートレット・インスタンスへの参照であるため、(オリジナルまたはコピーの)ポートレットのインスタンスに行われたカスタマイズまたはパーソナライズは、その他のすべてのインスタンスに影響します。

ポートレットをコピーするには、ポートレットのviewタグをコピーして貼り付けるだけでは不十分です。アプリケーション・ページのソースからポートレット関連のエントリをコピーする必要があります。また、ページ定義ファイルからポートレット関連のエントリをコピーし、重複するポートレット・バインディング情報を削除するか、コピーしたポートレットのバインディングBean内に新しいメソッドを作成する必要があります。

ポートレットをコピーする場合、ターゲット・ページはOracle ADF Facesページにする必要があります。ターゲット・ページ上に前から存在しているコードはすべて、それを反映する必要があります。このための操作は、非常に簡単です。JDeveloperによって新しいJSFページが作成されると、そのページには純粋なJSFタグが含まれます。Oracle ADF Facesコンポーネントを初めてページ上にドロップすると、自動的にタグがOracle ADF Facesタグに更新されます。たとえば、<html>タグは<afh:html>になり、<head>タグと<title="title">タグは<afh:head title="title">になります。このように、ターゲット・ページをOracle ADF Facesページに確実に変換する簡単な方法は、ターゲット・ページ上にOracle ADF Facesコンポーネントを配置することです。これによって、必要なコード変換が自動的に実行されます。

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

64.5.1 同一ページ上でのポートレットのコピーおよび配置方法

同じページ上にポートレットをコピーする場合、ページのリソース全部が両方のポートレット・インスタンスに対して使用可能であるため、ページのページ定義ファイルからポートレット関連情報をコピーする必要はありません。ポートレットのviewタグをコピーして貼り付け、一意の識別子をコピーに割り当てるだけです。

同一ページ上でポートレットをコピーして配置する手順は次のとおりです。

  1. アプリケーション・ナビゲータで、コピーするポートレットが表示されるページを含むアプリケーションを開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. デザイン・ビューでコピーするポートレットを選択します。

  5. 「ソース」タブをクリックします。選択したポートレットがソース・コードで強調表示されます。

  6. ポートレット・タグをコピーします(例64-8)。

    例64-8 ポートレットをコピーする際にコピーするコード部分

    <f:view>
      <afh:html binding="#{backing_portlet_page.html1}" id="html1">
        <afh:head title="portlet_page" binding="#{backing_portlet_page.head1}"
          id="head1">
          <meta http-equiv="Content-Type"
            content="text/html;charset=windows-1252"/>
        </afh:head>
        <afh:body binding="#{backing_portlet_page.body1}" id="body1">
          <h:form binding="#{backing_portlet_page.form1}" id="form1">
            <adfp:portlet value="#{bindings.portlet1}"
              portletType="/oracle/adf/portlet/
              pdksampleproducer_1153245807295/applicationPortlets/
              Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b"
              binding="#{backing_portlet_page.portlet1}"
              id="portlet1"
              isCustomModesAvailable="true"/>
          </h:form>
        </afh:body>
      </afh:html>
    </f:view>
    
  7. コピーしたコード部分をページ・ソースの任意の場所に貼り付けます。

  8. コピーのid属性に一意の値を指定します(例64-9)。

    例64-9 ポートレットIDの変更

    <adfp:portlet value="#{bindings.portlet1}"
      portletType="/oracle/adf/portlet/
      pdksampleproducer_1153245807295/applicationPortlets/
      Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b"
      binding="#{backing_portlet_page.portlet1}"
      id="portlet2"
      isCustomModesAvailable="true"/>
    

    注意:

    1つのページ上で、各ポートレットは一意のIDを持つ必要があります。


  9. ページ・ソースで、たとえば次のように、コピーしたポートレットのadfp:portletタグにバインディング属性が含まれるとします。

    binding="#{backing_untitled2.portlet1}"
    

    この場合は、このバインディングを削除するか、このマネージドBeanのマネージドBeanクラスを開いて新しいメソッドを定義することによって、バインディングBean内に新しいメソッドを作成します。

    たとえば、portlet1をコピーすると、例64-10に示すように、貼り付けられたコピーがマネージドBeanクラスでportlet2になります。

    例64-10 マネージドBeanクラスでのマネージドBeanの新しいメソッドの作成

    .
    private PortletBase portlet2;
    public void setPortlet2(PortletBase portet2) {
       this.portlet2 = portlet2;
    }
    .
    public PortletBase getPortlet2() {
       return portlet2;
    }
    
  10. メイン・メニューから「ファイル」→「すべて保存」を選択します。

64.5.2 異なるアプリケーション・ページ間でのポートレットのコピー方法

アプリケーション内の異なるページ間でポートレットをコピーする場合は、ソース・ページのページ定義ファイルからポートレット関連のコードをコピーする必要もあります。この項では、異なるアプリケーション・ページ間でのコピーと、異なるアプリケーション・プロジェクト間でのコピーに関連する手順を示します。

ポートレットをあるページから別のページにコピーする手順は次のとおりです。

  1. アプリケーション・ナビゲータで、コピーするポートレットが表示されるページを含むアプリケーションを開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. デザイン・ビューでコピーするポートレットを選択します。

  5. 「ソース」タブをクリックします。選択したポートレットがソース・コードで強調表示されます。

  6. ポートレット・タグをコピーします(例64-11)。

    例64-11 ポートレットをコピーする際にコピーするソース・ページのコード部分

    <f:view>
      <afh:html binding="#{backing_portlet_page.html1}" id="html1">
        <afh:head title="portlet_page" binding="#{backing_portlet_page.head1}"
          id="head1">
          <meta http-equiv="Content-Type"
            content="text/html;charset=windows-1252"/>
        </afh:head>
        <afh:body binding="#{backing_portlet_page.body1}" id="body1">
          <h:form binding="#{backing_portlet_page.form1}" id="form1">
            <adfp:portlet value="#{bindings.portlet1}"
              portletType="/oracle/adf/portlet/
              pdksampleproducer_1153245807295/applicationPortlets/
              Portlet2_82d49b79_010c_1000_8006_82235ffc4e2b"
              binding="#{backing_portlet_page.portlet1}"
              id="portlet1"
              isCustomModesAvailable="true"/>
          </h:form>
        </afh:body>
      </afh:html>
    </f:view>
    
  7. ポートレットのコピー先のアプリケーション・ページ(ターゲット・ページ)に移動します。

    ポートレットは、Oracle ADF Facesページにしか配置できません。ターゲット・ページにOracle ADF Facesコンポーネントが含まれていない場合は、コンテナ・オブジェクト(つまり、ネストされたポートレット・タグを囲んでいるタグ)でOracle ADFタグが使用されていることを確認します。

    ポートレットを別のプロジェクトのページにコピーする場合は、ターゲット・プロジェクトをポートレット消費用に構成する必要があります。プロジェクトを構成するには、ポートレット・プロデューサをプロジェクトに登録する必要があります。詳細は、第64.2項「WebCenter Portal: Frameworkアプリケーションへのポートレット・プロデューサの登録」を参照してください。

  8. 「ソース」タブをクリックし、コピーしたコードの部分をページ・ソースの任意の場所に貼り付けます。

  9. アプリケーション・ナビゲータで、ソース・ページ(ポートレットのコピー元のページ)を右クリックし、「ページ定義に移動」を選択します。

  10. 「ソース」タブをクリックし、ソース・ページのページ定義ファイルからポートレット・バインディングをコピーします(例64-12)。

    例64-12 ページ定義ファイルからコピーするコード部分

    <portlet id="portlet1"
      portletInstance="/oracle/adf/portlet/pdksampleproducer_1153245/applicationPortlets/Portlet2_82d49_010c_1000_8006_82235"
     class="oracle.adf.model.portlet.binding.PortletBinding"
     xmlns="http://xmlns.oracle.com/portlet/bindings"/>
    

    注意:

    コピーするポートレットにパラメータが含まれる場合は、必ず、コピーしたポートレットのポートレット・パラメータと、ポートレット・パラメータに関連付けられているページ変数もコピーに含めてください。


  11. アプリケーション・ナビゲータで、ターゲット・ページを右クリックし、「ページ定義に移動」を選択します。

    該当のページのページ定義が存在しない場合は、作成するかどうか確認されます。「はい」をクリックします。

  12. 「ソース」タブをクリックし、ソースからコピーしたポートレット・バインディングを(関連するポートレット・パラメータおよびこれらのパラメータに関連付けられたページ変数とともに)貼り付けます。

    <executables>タグの間にコードを貼り付けます。閉じの</executables>タグを追加し、開きタグにはスラッシュ (/)が含まれないことを確認する必要がある場合があります。

  13. メイン・メニューから「ファイル」→「すべて保存」を選択します。

64.6 アプリケーション・ページからのポートレットの削除

アプリケーション・ページからポートレットを削除する場合、そのポートレットにパラメータが含まれていれば、アプリケーション・ページのページ定義ファイルから、これらのパラメータに関連付けられたページ変数も削除する必要があります。

ポートレットとそれに関連するページ変数をページから削除する手順は次のとおりです。

  1. アプリケーション・ナビゲータで、削除するポートレットが表示されるページを含むアプリケーションを開きます。

  2. そのページを含むプロジェクトを開きます。

  3. ページを探し、右クリックして、「開く」を選択します。


    ヒント:

    ページはダブルクリックしても開くことができます。


  4. デザイン・ビューで、削除するポートレットを右クリックし、「削除」を選択します。

    これによって、ページからポートレットが削除され、ページ定義ファイルからポートレット・バインディングが削除されます。

  5. ポートレットに変数が含まれる場合は、アプリケーション・ナビゲータで、ページを右クリックして「ページ定義に移動」を選択します。

  6. 「ソース」タブをクリックし、削除したポートレットに関連付けられているページ変数を見つけて、ページ定義ファイルから削除します。

    たとえば、portlet1を削除した場合は、例64-13で強調表示された変数も削除します。

    例64-13 ページ定義ファイルからのポートレット関連ページ変数の削除

    <?xml version="1.0" encoding="UTF-8" ?>
    <pageDefinition xmlns="http://xmlns.oracle.com/adfm/uimodel"
        version="10.1.3.38.97" id="untitled1PageDef"
        Package="project1.pageDefs">
      <parameters/>
      <executables>
        <variableIterator id="variables">
            <variable Name="portlet1_param1" Type="java.lang.Object"/>
            <variable Name="portlet1_param2" Type="java.lang.Object"/>
            <variable Name="portlet2_param1" Type="java.lang.Object"/>
            <variable Name="portlet2_param2" Type="java.lang.Object"/>
        </variableIterator>
        <portlet id="portlet2" portletInstance="/oracle/adf/portlet/
            PdkPortletProducer2_1154100666247/applicationPortlets/
            Portlet1_b5e49696_010c_1000_8008_8c5707ef9c4f"
            class="oracle.adf.model.portlet.binding.PortletBinding"
            xmlns="http://xmlns.oracle.com/portlet/bindings">
          <parameters>
             <parameter name="param1" pageVariable="portlet2_param1"/>
             <parameter name="param2" pageVariable="portlet2_param2"/>
          </parameters>
        </portlet>
      </executables>
      <bindings/>
    </pageDefinition>
    
  7. メイン・メニューから、「ファイル」→「すべて保存」を選択します。

64.7 WebCenterサービス・ポートレットの消費

WebCenterサービス・ポートレットは事前に構成された即時利用可能なプロデューサで、これを使用すると、WebCenter Portalサービス・タスク・フローを、WSRPポートレットやページレットなどの他のアプリケーションに公開できます。

WebCenterサービス・ポートレットには、次のポートレットが用意されています。

WebCenterサービス・ポートレットは、次のアプリケーションで消費できます。

WebCenterサービス・ポートレット・プロデューサはWSRPプロデューサです。そのため、他のWSRPプロデューサと同様の方法でアプリケーションに登録できます。


注意:

WebCenterサービス・ポートレット・プロデューサは保護されたプロデューサなので、このプロデューサを登録する際は、WebCenter Portalでプロデューサを構成したときに使用したものと同じトークンを使用する必要があります。

WebCenterサービス・ポートレット・プロデューサの構成の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のWebCenterサービス・ポートレットの構成に関する項を参照してください。


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

64.7.1 Oracle PortalでのWebCenterサービス・ポートレットの消費

WebCenterサービス・ポートレットをOracle Portalで消費する手順は次のとおりです。

  1. WebCenterサービス・ポートレットWSRPプロデューサをOracle Portalに登録します。

    この実行方法の詳細は、『Oracle Fusion Middleware Oracle Portal管理者ガイド』のWebサービス・リモート・ポートレットへのアクセスの保護に関する項を参照してください。

  2. プロデューサの登録後は、プロデューサが提供するポートレットをOracle Portalアプリケーションのページに追加できます。

    この実行方法の詳細は、『Oracle Fusion Middleware Oracle Portal管理者ガイド』のページへのポートレットの追加に関する項を参照してください。

64.7.2 Oracle WebLogic PortalでのWebCenterサービス・ポートレットの消費

WebCenterサービス・ポートレットをOracle WebLogic Portalで消費する手順は次のとおりです。

  1. WebCenterサービス・ポートレットWSRPプロデューサをOracle WebLogic Portalに登録します。

    この実行方法の詳細は、Oracle Fusion Middleware Oracle WebLogic Portalフェデレーテッド・ポータル・ガイドのプロデューサの追加に関する項を参照してください。

  2. リモート・ポートレットをポータル・ライブラリに追加します。

    この実行方法の詳細は、Oracle Fusion Middleware Oracle WebLogic Portalフェデレーテッド・ポータル・ガイドのポータル・ライブラリへのリモート・ポートレットの追加に関する項を参照してください。

  3. WebCenterサービス・ポートレット・プロデューサは、保護されたWSRPプロデューサであるため、SAMLセキュリティを設定する必要があります。

    この実行方法の詳細は、Oracle Fusion Middleware Oracle WebLogic Portalフェデレーテッド・ポータル・ガイドのWebLogic PortalコンシューマとWebCenter Frameworkプロデューサ間のSAMLセキュリティに関する項を参照してください。

  4. プロデューサを登録してセキュリティを設定した後は、プロデューサが提供するポートレットをOracle WebLogic Portalアプリケーションのページに追加できます。

    この実行方法の詳細は、Oracle Fusion Middleware Oracle WebLogic Portalポータル開発ガイドのページへのコンテンツの追加に関する項を参照してください。

64.7.3 Oracle WebCenter InteractionでのWebCenterサービス・ポートレットの消費

WebCenterサービス・ポートレットをOracle WebCenter Interactionで消費する手順は次のとおりです。

  1. Oracle WebCenter InteractionでWebCenterサービス・ポートレットを使用可能にするには、まず、Oracle WebCenter Portalのページレット・プロデューサを使用して、プロデューサをページレット・プロデューサとして登録する必要があります。

    この実行方法の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のWSRPポートレット・プロデューサの登録に関する項を参照してください。


    注意:

    WebCenterサービス・ポートレットには、WS-Securityの構成時に指定したものと同じトークン・プロファイルを選択する必要があります。


  2. ページレット・プロデューサを作成したら、Oracle WebCenter Interactionに登録する必要があります。

    この実行方法の詳細は、次の場所にあるOracle Fusion Middleware Oracle WebCenter Interaction管理者ガイドのOracle WebCenterページレット・プロデューサ・リモート・サーバーの作成に関する項を参照してください。

    http://download.oracle.com/docs/cd/E23010_01/wci.1033/

  3. ページレット・プロデューサをOracle WebCenter Interactionアプリケーションに登録したら、使用するページレットごとにリモート・ページレットWebサービスを作成する必要があります。

    この実行方法の詳細は、次の場所にあるOracle Fusion Middleware Oracle WebCenter Interaction管理者ガイドのリモート・ページレットWebサービスの作成または編集に関する項を参照してください。

    http://download.oracle.com/docs/cd/E23010_01/wci.1033/

  4. 次に、ページレットにポートレットを作成します。

    この実行方法の詳細は、次の場所にあるOracle Fusion Middleware Oracle WebCenter Interaction管理者ガイドのポートレットの作成または編集に関する項を参照してください。

    http://download.oracle.com/docs/cd/E23010_01/wci.1033/

  5. 最後に、ポートレットをOracle WebCenter Interactionコミュニティ・ページに追加できます。

    この実行方法の詳細は、次の場所にあるOracle Fusion Middleware Oracle WebCenter Interaction管理者ガイドのコミュニティ・ページの作成に関する項を参照してください。

    http://download.oracle.com/docs/cd/E23010_01/wci.1033/

64.7.4 WebCenterサービス・ポートレット・パラメータの設定

WebCenterサービス・ポートレットから提供される各ポートレットでは様々なパラメータを定義します。これらのパラメータを使用すると、アプリケーションでの消費時に、ポートレットの外観や動作を変更できます。

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

64.7.4.1 共通のWebCenterサービス・ポートレット・パラメータ

表64-9に、WebCenterサービス・ポートレットで提供されるすべてのポートレットに使用可能なパラメータを示します。

表64-9 WebCenterサービス・ポートレットの共通パラメータ

パラメータ 説明

width

消費ページでのポートレットの幅を指定します。指定しない場合は、ポートレットは、ページが許すかぎり多くの水平領域を占めます。

height

消費ページでのポートレットの高さを指定します。指定しない場合は、ポートレットの高さは、ポートレット・コンシューマによって決まります。


64.7.4.2 ドキュメント・マネージャ・ポートレット・パラメータ

表64-10に、ドキュメント・マネージャ・ポートレットに使用可能なその他のパラメータを示します。

表64-10 ドキュメント・マネージャ・ポートレット・パラメータ

パラメータ 説明

connectionName

WebCenterサービス・ポートレットで使用されるOracle Content Server接続の名前。値が選択されない場合、アプリケーション開発者または管理者が指定したデフォルトの接続が使用されます。コンテンツ・リポジトリ接続の構成の詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のコンテンツ・リポジトリの登録に関する項を参照してください。

デフォルト: アプリケーション開発者によって「コンテンツ・リポジトリ接続の作成」ダイアログ・ボックスのデフォルトとして選択されている接続。これは管理者が変更できます。

featuresOff

ポートレットの無効化されている機能のリスト。項目を区切るには、カンマまたは空白を使用します。JavaDocで公開されている有効な値は、checkin、checkout、clipboard、close、delete、download、dnd、editwiki、editoffice、newfolder、newwiki、rename、upload、multifile-upload、profile-upload、search、advancedSearch、workflow、properties、history、comments、likes、links、tags、recommendations、autovue、title、related-items、social、sidebars、ilsです。

例:

${'search, advancedSearch, clipboard, dnd, rename, newfolder, upload, newwiki, checkin, checkout, editoffice, edithtml, delete, sidebars, history'}

layout

タスク・フローのターゲット・レイアウト。次のうちから選択します。

  • ${'explorer'}: (デフォルト)2つのペインにフォルダとファイルが表示されます。左側のペインにはフォルダが、右側のペインには現在選択されているフォルダのコンテンツが表示されます。

  • ${'table'}: 1つのペインに現在のフォルダのコンテンツのみが表示されます。これには、フォルダをクリックしてドリル・ダウンする機能が備わっています。このフォルダ・コンテンツでペインをリフレッシュできます。

  • ${'treeTable'}: 1つのペインにフォルダ階層(ルート・フォルダから開始)が表示されます。これには、フォルダを開閉する機能が備わっています。

pageSize

ポートレットに表示する最大行数。ポートレットのフォルダとファイルのリストが指定した行数よりも大きい場合は、ポートレットにスクロール・バーが表示されます。デフォルト: 27

注意: pageSizeを画面サイズに対して大きすぎる値に設定すると、エンド・ユーザーがポートレット・スクロール・バーをアプリケーション・スクロール・バーに合せるのが難しくなります。

readOnly

すべてのコンテンツ管理操作を無効にし、非表示にするかどうかを指定します。

  • ${true}: コンテンツ管理を無効化します。

  • ${false}: (デフォルト)コンテンツ管理をユーザーに公開します。

resourceId

現在フォーカスされているリソース。この値は、フォルダIDまたはドキュメントIDです。

startFolderPath

現在のポートレット・インスタンスでルート・フォルダとして使用するフォルダ名。

これは、ポートレット・インスタンスに表示するコンテンツのソースと範囲の決定に役立つコンテンツ・スコープ設定パラメータです。

この値を設定するEL式を指定できます。

例: ${'/WebCenterB5/Proj_X/Specs'}


64.7.4.3 ディスカッション・フォーラム・ポートレット・パラメータ

表64-11に、ディスカッション・フォーラム・ポートレットで使用可能なその他のパラメータを示します。

表64-11 ディスカッション・フォーラム・ポートレット・パラメータ

パラメータ 説明

categoryId

ビューのスコープ設定先となるWebCenter Portalのディスカッション・サーバーの既存のカテゴリの識別子。

値が指定されない場合、デフォルトのディスカッション・サーバーの適切なルート・カテゴリとなります。(このルート・カテゴリIDは、application.root.category.idという名前の追加のプロパティを接続に指定することにより、オーバーライドが可能です。)

ディスカッション・サーバー管理者インタフェースを使用して、テスト目的でカテゴリを作成し、ここでそのカテゴリ識別子を参照することもできます。

forumId

人気のあるトピックを取得するディスカッション・サーバーの既存のフォーラムの識別子。

categoryIdとforumIdの両方が指定された場合は、categoryIdのみが有効になります。

showRecursiveForums

ポートレットでフォーラムをカテゴリのみに表示するのか、またはサブカテゴリに表示するのかを指定します。

trueの場合、指定のカテゴリおよびサブカテゴリの下のすべてのフォーラムが表示されます。falseの場合、カテゴリの直接の子フォーラムのみが表示されます。デフォルト値はfalseです。

注意: trueの場合、パフォーマンスに影響を及ぼす可能性があります。

isCategoryView

フォーラムをカテゴリIDカテゴリの下にグループ化するのか、トピックをフォーラムIDフォーラムの下にグループ化するのかを決定します。

trueの場合、ポートレットにcategoryIdの下に分類されたフォーラムが表示されます。falseの場合、ポートレットに指定のforumIdに関連付けられたトピックが表示されます。デフォルト値はfalseです。

このパラメータはその他のパラメータとの組合せで機能します。


64.7.4.4 ブログ・ポートレット・パラメータ

表64-12に、ブログ・ポートレットに使用可能なその他のパラメータを示します。

表64-12 ブログ・ポートレット・パラメータ

パラメータ 説明

hideComments

ブログ投稿コメントを表示するかどうかを指定します。

  • true: ブログ投稿のコメントが表示されます。

  • false: (デフォルト)ブログ投稿のコメントは表示されません。

pageSize

ページ区切りが表示され、ユーザーが次のページに移動できるようになるまでにいくつのブログ投稿を表示するのかを指定します。デフォルトでは、最大10個のブログ投稿がブログ・ページに表示されます。

resourceId

選択したフォルダの一意の識別子を指定します。

値は次の形式で指定できます。

  • connection_name/path_to_folder

    ここで、connection_nameは、WebCenterサービス・ポートレットで使用されるOracle Content Server接続の名前です。path_to_folderはブログとして公開するOracle Content Serverのフォルダへのパスです。

  • connection_name#dCollectionID:dCollectionId

    ここで、connection_nameは、b WebCenterサービス・ポートレットで使用されるOracle Content Server接続の名前です。dCollectionIdは、ブログとして公開するOracle Content ServerにあるフォルダのコレクションIDです。


64.7.4.5 リスト・ポートレット・パラメータ

リスト・ポートレットには、追加のパラメータはありません。

64.7.4.6 投票マネージャ・ポートレット・パラメータ

表64-13に、投票マネージャ・ポートレットに使用可能なその他のパラメータを示します。

表64-13 投票マネージャ・ポートレット・パラメータ

パラメータ 説明

showUserDataOnly

すべての投票を表示するのか、そのユーザーが作成した投票のみを表示するのかを指定します。デフォルト(No)では、すべての投票を表示します。

そのユーザーが作成した投票のみを表示するには、Yesを設定します。


64.7.4.7 投票の実施ポートレット・パラメータ

表64-14に、投票の実施ポートレットに使用可能なその他のパラメータを示します。

表64-14 投票の実施ポートレット・パラメータ

パラメータ 説明

pollId

表示する投票のID。


64.7.4.8 ワークリスト・ポートレット・パラメータ

ワークリスト・ポートレットには、追加のパラメータはありません。

64.7.4.9 お知らせポートレット・パラメータ

表64-15に、お知らせポートレットに使用可能なその他のパラメータを示します。

表64-15 お知らせポートレット・パラメータ

パラメータ 説明

parentId

お知らせオブジェクトが維持されるディスカッション・サーバー内のフォーラムID。各アプリケーションは、ディスカッション・サーバーにフォーラムを作成する必要があります。そのフォーラムID、たとえば${2}をここに入力します。

このパラメータが指定されていない場合は、アミューズメントはデフォルトでグローバルなお知らせになります。


64.7.4.10 メール・ポートレット・パラメータ

表64-16に、メール・ポートレットに使用可能なその他のパラメータを示します。

表64-16 メール・ポートレット・パラメータ

パラメータ 説明

tabularView

EL値タイプを使用して、trueの値を入力すると、件名、送信元、送信日付など、メール・メッセージに関連付けられた情報が表形式で表示されます。このパラメータをfalseに設定すると、メール・メッセージはリスト・ビューでレンダリングされます。


64.7.4.11 アクティビティ・ストリーム・ポートレット・パラメータ

表64-17に、アクティビティ・ストリーム・ポートレットに使用可能なその他のパラメータを示します。

表64-17 アクティビティ・ストリーム・ポートレット・パラメータ

パラメータ 説明

advancedQuery

ストリーム・アイテムをフィルタ処理するカスタムの問合せを指定するフィールド。

詳細は、40.3項「アクティビティ・ストリームの詳細な問合せオプションに関する必要な知識」を参照してください。

enableContextInfo

現在のコンテキストにおけるオブジェクトに関する詳細情報を表示または省略する手段(ポップアップまたは他のコンテキストに基づく手段)。

  • #{true}を入力すると、アクティビティ・ストリームでaf:contextInfoコンポーネント(小さな赤いドット)が表示できるようになります。ユーザーはこのドットをクリックしてオブジェクトの詳細情報を表示できます。

  • #{false}を入力すると、オブジェクトの詳細情報は省略されます。

このパラメータがtrueで、サービス定義にcontextInfoTaskflowIdが定義されている場合、サービスのアクティビティによりaf:contextInfoが表示されます。それ以外の場合、コンテキスト情報は表示されません。

hideComments

ストリーム・アクティビティ上のコメント機能を表示または非表示にする手段。

trueを入力すると、コメント機能が非表示になります。falseを入力するとこれが表示されます。

hideConfigure

タスク・フロー・インスタンスでパーソナライズ・オプションを非表示にする手段。

hideInlinePreview

ストリーム・アクティビティに添付されるファイルのインライン・プレビューを許可または省略する手段。

trueを入力すると、ファイルのプレビューは省略されます。falseを入力するとこれが表示されます。

hideLike

ストリーム・アクティビティ上で「お気に入り登録」リンクを表示または非表示にする手段。

trueを入力すると、「お気に入り登録」リンクが非表示になります。falseを入力するとこれが表示されます。

hideShare

ストリーム・アクティビティ上の「共有」メニューを表示または非表示にする手段。

trueを入力すると、「共有」メニューが非表示になります。falseを入力するとこれが表示されます。

pageSize

指定のタスク・フロー・インスタンスにストリームするアイテム数。

pagination

マルチページ・ストリームで使用するページ区切りの形式。

  • #{true}を入力すると、「前へ」および「次へ」リンクが表示されます。

  • #{false}を入力すると、「前へ」および「次へ」リンクが省略されます。かわりに「詳細」リンクがレンダリングされ、ユーザーはすべてのストリーム・アクティビティが表示されたより詳細なタスク・フローのビューにナビゲートできます。

profileOnly

ユーザー・プロファイルのみからアクティビティをストリームする手段。

  • trueを入力すると、ユーザー・プロファイルに関連付けられたアクティビティのみがストリームされます。

  • falseを入力すると、ユーザー・プロファイルに関連付けられたアクティビティとともにその他のタイプのアクティビティがストリームされます。

resourceId

現在のユーザーID。

#{securityContext.userName}を入力すると、現在のユーザーが戻されます。

serviceCategories

アクティビティのストリーム元となるサービス名のカンマ区切りリストを入力するためのフィールド。

このパラメータを使用して、ストリーム・アクティビティの表示を、指定したサービスに関連付けられたアクティビティのみに制限します。1つ以上のサービスIDを入力します。たとえば次のようになります。

oracle.webcenter.collab.announcement, oracle.webcenter.collab.forum

有効なサービスIDのリストは、表G-7を参照してください。リストされたすべてのサービスIDを使用できるわけではありません。すべてのサービスがアクティビティ・ストリームにアイテムをストリームするわけではないためです。たとえばRSSサービスでは、アクティビティはストリームされません。


64.7.4.12 タグ・クラウド・ポートレット・パラメータ

タグ・クラウド・ポートレットには、追加のパラメータはありません。

64.8 ポートレット・プロデューサのタスク・フローの追加

ポートレット・プロデューサのタスク・フロー(プロデューサ)を使用すると、ユーザーは実行時にポートレット・プロデューサ接続を管理できます。

WebCenter PortalのFrameworkアプリケーション・テンプレートを使用して作成されたアプリケーションの場合、ポートレット・プロデューサのタスク・フローは、WebCenter Portal管理コンソール(「サービス」タブ)からそのまま使用できます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』の章「サービス、ポートレット・プロデューサおよび外部アプリケーションの管理」を参照してください。

さらに、その他のタスク・フローと同様に、ポートレット・プロデューサのタスク・フローはアプリケーション・ページに追加できます。これは、WebCenter PortalのFrameworkアプリケーション・テンプレートを使用していないためWebCenter Portal管理コンソールがプロジェクトに含まれていない場合に、特に役に立ちます。プロデューサ・タスク・フローを通してポートレット・プロデューサ接続を管理または表示するには、特別な権限が必要です。

デフォルトでは、管理者ロールを持つユーザーがポートレット・プロデューサを管理できます。ポートレット・プロデューサ・タスク・フローを通じて他のユーザーが接続を管理する場合は、そのユーザーにAppConnectionManagerロールを付与する必要があります。

ポートレット・プロデューサ・タスク・フローを追加する手順は次のとおりです。

  1. タスク・フローを追加するアプリケーションでJSFページを作成するか、開きます(第5.3項「ポータルへのページの追加」を参照)。

  2. リソース・パレットで「カタログ」「WebCenter Portal - サービス・カタログ」「タスク・フロー」と開きます。

  3. 「リソース・パレット」から「プロデューサ」をドラッグし、ページのaf:formタグの中にドロップします。

  4. 必要に応じて、AppConnectionManagerロールを1人以上のテスト・ユーザーに付与します。

    1. テスト・ユーザーTEST_PRODを追加します。

    2. AppConnectionManagerロールを付与します。

    ユーザーを追加してこのロールを付与する方法の詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』のテスト・ユーザーの作成に関する項を参照してください。

  5. ページを保存し、実行します。管理者として、または前の手順で定義したTEST_PRODユーザーとしてログインします。図64-10に示す画面が表示されます。

    図64-10 ポートレット・プロデューサのタスク・フロー

    図64-10の説明が続きます
    「図64-10 ポートレット・プロデューサのタスク・フロー」の説明


    注意:

    実行時、アプリケーション管理者は、WebCenter Portal管理を通してユーザーにAppConnectionManagerおよびAppConnectionViewerロールを付与できます(『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のアプリケーション・ロールへのメンバーの追加に関する項を参照)。または、システム管理者は、Fusion Middleware Controlを通してAppConnectionManagerおよびAppConnectionViewerロールを付与できます(『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のFusion Middleware Controlを使用したアプリケーション・ロールの付与に関する項を参照)。


64.9 ポートレットのトラブルシューティング

この項では、ポートレットの使用中に発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。この項の内容は、次のとおりです。

64.9.1 ポートレットのトラブルシューティング用診断ツール

ポートレットの問題の識別と解決に役立つ、コンシューマとプロデューサの両方に使用可能なツールのセットがあります。

ポートレットをレンダリングしたときにポートレット・エラー・メッセージが発生した場合、またはポートレットが表示されたものの、正常に操作できない場合は、これらのツールを使用した一般的な手順に従って、問題を診断する必要があります。

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

64.9.1.1 ポートレット・インスタンスの識別

ポートレット・エラーが発生した場合の最初の手順は、起動中のポートレット・プロデューサとポートレット・インスタンスを識別することです。portletDebugShow() JavaScriptをブラウザから実行し、この情報をポートレット・コンテンツのメイン領域に表示します。

ポートレット・インスタンスを識別する方法は次のとおりです。

  1. ブラウザのロケーション・フィールドに次のコマンドを入力します。

    javascript:portletDebugShow()
    

    ヒント:

    Internet ExplorerおよびGoogle Chromeでは、ロケーション・フィールドにこのコマンドを入力する必要があります。このコマンドをこのフィールドに貼り付けると、javascriptが削除されます。

    Firefox 6以降では、ロケーション・フィールドにJavaScriptを入力することはできません。JavaScriptコンソールでコマンドを入力する必要があります。


  2. スクリプトの実行後、すべてのポートレットに次の情報が表示されます。

    • プロデューサ名

    • ポートレット名

    • ポートレット・インスタンスID

    • 実行コンテキストID (ECID)

      ECIDは、ポートレット・リクエストの識別に使用される一意のIDです。Fusion Middleware Controlを使用して各種コンシューマ・ログ・ファイルおよびプロデューサ・ログ・ファイルでメッセージを相互に関係付けるには、ECIDを使用します。同じECIDがコンシューマからプロデューサに伝播されます。詳細は、『Oracle Application Server管理者ガイド』のログ・ファイルとコンポーネントでのメッセージの関係付けに関する項を参照してください。


      注意:

      破損したポートレットには2つのECIDが表示されます。1つは、エラーが発生したリクエストのECID、もう1つはエラーが報告されたリクエストのECIDです。インライン・ポートレット(つまり、IFRAMEに表示されないポートレット)の場合、この2つのECIDは同じになります。

      IFRAMEポートレット(たとえば、Oracle JSF Portlet Bridgeポートレットなど)の場合、このECIDは異なります。これは、元の例外が発生したリクエストよりも後のリクエストでエラーが報告されるためです。ログをチェックする場合は、どちらかのECIDに関連情報が含まれている可能性があるため、両方のECIDを検索する必要があります。


    portlet_debug.gifの説明が続きます
    「図portlet_debug.gif」の説明

    問題を見つけるために、後続の診断手順でこの情報を使用できます。


    注意:

    ポートレット診断情報に表示されるECIDは、(ポートレット・コンシューマ・リソース・プロキシを使用して)ポートレット・プロデューサに対して実行された部分的なページ・レンダリング・リクエストを反映しません。これらのリクエストはポートレットを更新できますが、ECIDはポートレット診断情報に記録されません。これらのリクエスト中に発生したエラーのログはプロデューサ上で、またはポートレット・リソース・プロキシによってコンシューマ上で記録されますが、ポートレット診断情報で報告されたECID情報を、関連するログ・エントリのECIDの特定のために使用することはできません。


  3. ポートレットのデバッグを完了したら、次のコマンドを入力してポートレット・デバッグ情報を非表示にします。

    javascript:portletDebugHide()
    

    ヒント:

    Internet ExplorerおよびGoogle Chromeでは、ロケーション・フィールドにこのコマンドを入力する必要があります。このコマンドをこのフィールドに貼り付けると、javascriptが削除されます。

    Firefox 6以降では、ロケーション・フィールドにJavaScriptを入力することはできません。JavaScriptコンソールでコマンドを入力する必要があります。


64.9.1.2 「ポートレット・コンシューマ・テスト・ページ」の調査

ポートレット・エラーの診断の次の手順では、「ポートレット・コンシューマ・テスト・ページ」(図64-11に表示)にアクセスし、ポートレット・プロデューサを探して、必要に応じて、ポートレットを単独でテストします。

図64-11 「ポートレット・コンシューマ・テスト・ページ」

図64-11の説明が続きます
「図64-11 「ポートレット・コンシューマ・テスト・ページ」」の説明

「ポートレット・コンシューマ・テスト・ページ」には、次の3つのタブがあります。

  • プロデューサ: このタブには、コンシューマ・アプリケーションに登録されているプロデューサがすべて表示されます。プロデューサを選択すると、そのプロデューサに関する固有の情報が表示されます。

  • 健全性チェック: このタブには、コンシューマ・アプリケーション開発者による構成に従って、コンシューマ・アプリケーションで実行可能な、事前定義されたポートレット・インスタンスと必要なパラメータのセットが含まれています。これらのポートレット内での障害は、対応するプロデューサあるいはポートレットに問題があることを示しています。

  • 構成: このタブでは、ポートレット消費のコンシューマ構成エントリを識別できます。これらの値はアプリケーション内に格納されているため、変更することはできません。これらは参照情報として表示されているだけです。

「ポートレット・コンシューマ・テスト・ページ」にアクセスすると、診断手順をさらに実行できます。

この項では、「ポートレット・コンシューマ・テスト・ページ」を使用してポートレットの問題を診断するための次の内容について説明しています。

64.9.1.2.1 「ポートレット・コンシューマ・テスト・ページ」へのアクセス

「ポートレット・コンシューマ・テスト・ページ」には、ポートレット・コンシューマに関する診断情報が表示されます。

「ポートレット・コンシューマ・テスト・ページ」にアクセスする手順は次のとおりです。

  1. ブラウザで、「ポートレット・コンシューマ・テスト・ページ」のURLを入力します。

    http://host:port/context-root/faces/oracle/portlet/client/adf/diagnostic/pages/ConsumerTestPage.jspx
    

    注意:

    コンシューマ・アプリケーションが保護されている場合は、「ポートレット・コンシューマ・テスト・ページ」には、このページを表示する権限を付与されているユーザーのみがアクセスできます。


  2. 「ポートレット・コンシューマ・テスト・ページ」では、次の項に記載されているさらなる診断手順を実行できます。

64.9.1.2.2 ポートレット・プロデューサの特定

「ポートレット・コンシューマ・テスト・ページ」の「プロデューサ」タブには、コンシューマ・アプリケーションに登録されたプロデューサがすべて表示されます。アプリケーションのポートレット・インスタンスにエラー・メッセージが表示された場合は、このタブ上でポートレットを所有するプロデューサを選択することにより、そのプロデューサに関する情報を表示できます。

ポートレット・プロデューサを特定する手順は次のとおりです。

  1. 「ポートレット・コンシューマ・テスト・ページ」で、エラーを報告しているポートレット・インスタンスを所有するポートレット・プロデューサを選択します。

    これについては、第64.9.1.1項「ポートレット・インスタンスの識別」に記載されています。

  2. 選択したプロデューサに関する次の情報が表示されます。

    • プロデューサ・テスト・ページ: 「プロデューサ・テスト・ページ」へのリンク。

    • 構成: 使用しているプロデューサに関連付けられたスキン、セキュリティおよびタイムアウト周辺の潜在的な問題の詳細。

    • 提供されたポートレット: プロデューサにより提供されたすべてのポートレットのリスト。リストに提供されたポートレットが表示されない場合は、プロデューサの登録メタデータに問題があることを示しています。

    • ポートレット・インスタンス: コンシューマ・アプリケーションで選択されたプロデューサのすべてのポートレット・インスタンスのリスト。このリストは空である場合があります。

    この情報を使用してプロデューサの潜在的な問題を識別できます。

64.9.1.2.3 ポートレット・インスタンスの特定と実行

ポートレット・エラーの原因をまだ特定できない場合は、ポートレット・インスタンス自体に問題がある可能性があります。

ポートレット・インスタンスを特定して実行する手順は次のとおりです。

  1. 「ポートレット・コンシューマ・テスト・ページ」で、エラーを報告しているポートレット・インスタンスを所有するポートレット・プロデューサを選択します。

    これについては、第64.9.1.1項「ポートレット・インスタンスの識別」に記載されています。

  2. 「ポートレット・インスタンス」で、「コンシューマ・テスト・ページ: ポートレット」ページを表示するポートレット・インスタンスを選択します。

    これについては、第64.9.1.1項「ポートレット・インスタンスの識別」に記載されています。

    portlet_test_page.pngの説明が続きます
    「図portlet_test_page.png」の説明

  3. 「ポートレット・コンシューマ・テスト・ページ: ポートレット」ページはポートレットをスタンドアロン・ページにレンダリングします。ポートレットがこのページ上で正常に実行される場合は、問題は、破損したポートレットを含む、ページ上の別のコンポーネントによって引き起こされている可能性が高くなります。

  4. 「パラメータ」セクションでは、ストレッチまたはフロー・レイアウトを使用してポートレットがどのように表示されるのかを試してみることができます。

  5. ポートレットにパラメータが含まれる場合、「パラメータ」セクションには、ポートレットのすべてのパブリック・パラメータも表示されます。任意のパラメータに値を入力し、ポートレットがパラメータを正しく受け取ることをテストします。

  6. 「ポートレット・コンシューマ・テスト・ページ」に戻るには、ページ上部のプロデューサ名のリンクをクリックします。

64.9.1.2.4 健全性チェックの実行

「ポートレット・コンシューマ・テスト・ページ」の「健全性チェック」タブ(図64-12に表示)には、全プロデューサについてのアプリケーションでのポートレット通信状態の簡単な概要が表示されます。

図64-12 「健全性チェック」タブ

図64-12の説明が続きます
「図64-12 「健全性チェック」タブ」の説明

「健全性チェック」タブは、コンシューマ・アプリケーション内で使用されているポートレット・インスタンスを参照します。このリストは、組み込むポートレットおよびそのポートレットに渡すパラメータを選択したアプリケーション開発者によって構成されます。

このページのチェックでは、出力をUIにレンダリングすることはありません。ただし、実行可能なポートレットのインスタンスを内密に作成し、なんらかの例外がポートレットによって返された場合にエラーを報告します。

健全性チェックを実行する手順は次のとおりです。

  1. 「ポートレット・コンシューマ・テスト・ページ」で、「健全性チェック」タブをクリックします。

  2. テストするポートレットの隣の「チェック」リンクをクリックします。

    健全性テストの結果が「ステータス」列に表示されます。

  3. リストされたすべてのポートレットについて健全性チェックを実行するには、「すべての健全性チェックを実行」リンクをクリックします。

64.9.1.2.5 コンシューマ構成エントリのチェック

「ポートレット・コンシューマ・テスト・ページ」の「構成」タブ(図64-13に表示)では、ポートレット消費のコンシューマ構成エントリを識別できます。このタブには、たとえば、最小および最大タイムアウト値やコンシューマのバージョン番号など、adf-config.xmlファイルで定義されている設定が表示されます。これらの値はアプリケーション内に格納されているため、変更することはできません。これらは参照情報として表示されているだけです。

図64-13 「構成」タブ

図64-13の説明が続きます
「図64-13 「構成」タブ」の説明

64.9.1.3 「プロデューサ・テスト・ページ」の調査

コンシューマ・アプリケーションでエラーの原因を特定できない場合は、次の手順で「プロデューサ・テスト・ページ」(図64-14に表示)を使用してポートレット・プロデューサ・アプリケーションの潜在的な問題を特定します。

図64-14 「プロデューサ・テスト・ページ」

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

メインの「プロデューサ・テスト・ページ」へのアクセスはパブリックですが、各ポートレットのテスト・ページへのリンクには、基礎となるページとタスク・フローに対する権限を付与されたユーザーのみがアクセスできます。

「プロデューサ・テスト・ページ」には、次の5つのセクションがあります。

  • ポートレット

    プロデューサ内のすべてのポートレットのリスト。Oracle JSF Portlet Bridgeポートレットでは、各ポートレットにも個別のリンクがあり、ポートレットをサーブレットとして実行できます(これはポートレットとして実行するための前提条件です。ポートレットがサーブレットとして実行されない場合は、ポートレットとしても実行できません)。

  • コンテナ構成

    コンシューマ・プリファレンス情報が格納されている情報。

  • コンテナ・バージョン

    ポートレット・プロデューサ・コンテナのバージョン番号。

  • WSDL URL

    登録に使用するWebサービス記述言語(WSDL)ドキュメントへのリンク。

  • SOAPモニター

    MonitorまたはAdminロールを持つユーザーがコンシューマとプロデューサ間のSOAPメッセージを追跡できるWSRP SOAPモニターへのリンク。

「プロデューサ・テスト・ページ」にアクセスすると、さらなる診断手順が実行できます。

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

64.9.1.3.1 「プロデューサ・テスト・ページ」へのアクセス

「プロデューサ・テスト・ページ」には、ポートレット・プロデューサに関する診断情報が表示されます。

「プロデューサ・テスト・ページ」にアクセスする手順は次のとおりです。

  1. ブラウザで、「プロデューサ・テスト・ページ」のURLを入力します。

    http://host:port/context-root/info
    
  2. 「プロデューサ・テスト・ページ」では、次の項に記載されているさらなる診断手順を実行できます。

64.9.1.3.2 サーブレットとしてのJSFポートレットの実行

Oracle JSF Portlet Bridgeポートレット・プロデューサが正常に実行されていることを確認するには、まず、プロデューサ・アプリケーションが標準のHTTPリクエストを使用して正常に実行されていることを確認する必要があります。プロデューサがポートレットとして公開するアーティファクトがサーブレットとして実行されない場合は、ポートレットとして実行されません。

JSFポートレットをサーブレットとして実行する手順は次のとおりです。

  1. 「プロデューサ・テスト・ページ」で、ポートレットの隣の「サーブレットとして実行」リンクをクリックします。

  2. 基本のページまたはタスク・フローをリクエストするために、標準のHTTPを使用してポートレットがコールされます。リクエストの結果が新しいブラウザ・ウィンドウに表示されます。

    結果として生じるページやタスク・フローが正しくレンダリングされない場合は、プロデューサ・アプリケーションに問題があるため、そのページやタスク・フローをポートレットとして実行する前に解決しておく必要があります。

  3. ポートレットでパラメータを受け入れる場合は、「パラメータの表示」をクリックし、パラメータを表示して値を指定します。「サーブレットとして実行」をクリックすると、ポートレットのコールにパラメータ値が格納されます。

64.9.1.3.3 SOAPモニターの調査

SOAPモニターを使用すると、ポートレットのレンダリング時に、コンシューマとプロデューサ間のSOAPリクエストにアクセスできます。これは、通信レベルで問題を診断する際に非常に役に立ちます。

SOAPモニターを調査する方法は次のとおりです。

  1. 「プロデューサ・テスト・ページ」で、ページの下部の「SOAPモニター」リンクをクリックします。

  2. 要求されたら、ユーザー名とパスワードを入力します。


    注意:

    SOAPモニターにアクセスするには、アイデンティティ管理システムのMonitorsまたはAdministratorsロールのメンバーである必要があります。


  3. デフォルトでは、SOAPモニターは無効なので、ページは空です。まず、ページ上部にある「有効化」リンクをクリックしてモニターを有効化する必要があります。

  4. ページは自動的にリフレッシュしないため、SOAPメッセージを表示するには、「リフレッシュ」リンクをクリックする必要があります。

  5. 失敗したポートレットにリクエストを強制的に送信するには、該当のポートレットの「ポートレット・コンシューマ・テスト・ページ: ポートレット」ページに進み、「ポートレットのリフレッシュ」を選択します。

  6. ポートレットがレンダリングされるか失敗したら、SOAPモニターの「リフレッシュ」リンクをクリックして、取得したリクエストを表示します。

    portlet_soap_monitor.pngの説明が続きます
    「図portlet_soap_monitor.png」の説明

  7. これで、送信されたSOAPメッセージおよびレスポンスを調査して問題の原因を絞り込めるようになりました。


    注意:

    ポートレットを再度実行してSOAPモニターをリフレッシュしてもメッセージが表示されない場合は、プロデューサとコンシューマ間にセキュリティ上の問題がある可能性があります。プロデューサとコンシューマが通信するためのWS-Security設定が正しいことを確認する必要があります。


64.9.2 ポートレット・ログ・ファイルの構成

ポートレットの問題をトラブルシューティングするには、ポートレット・ログハンドラとロガーをログ構成ファイルlogging.xmlに追加すると役に立ちます。

例64-14に、ポートレット・ログハンドラとロガーの追加方法を示します。この例では、コンシューマ・アプリケーションとプロデューサ・アプリケーションを同一のWebLogic Serverインスタンス上で実行していることを前提としています。コンシューマ・アプリケーションとプロデューサ・アプリケーションを異なるインスタンス上で実行している場合は、これらのアプリケーションを適宜分離する必要があります。


注意:

ログ・エントリをファイルの最後に追加してシード済設定がオーバーライドされることを確認します。


例64-14 ポートレット問題をトラブルシューティングするためのログ・ファイルの構成

<!-- NOTE: You need to change the path where the logfile is located -->
<log_handlers>
...
   <!-- Portlet Consumer -->
   <log_handler name="portlet-consumer-handler" class="oracle.core.ojdl.logging.ODLHandlerFactory">
      <property name="format" value="ODL-Text"/>
      <property name="path" value="/scratch/logs/portlet-consumer.log"/>
   </log_handler>

   <!-- Portlet Producer -->
   <log_handler name="portlet-producer-handler" class="oracle.core.ojdl.logging.ODLHandlerFactory">
      <property name="format" value="ODL-Text"/>
      <property name="path" value="/scratch/logs/portlet-producer.log"/>
   </log_handler>

   <!-- Portlet Bridge -->
   <log_handler name="portlet-bridge-handler" class="oracle.core.ojdl.logging.ODLHandlerFactory">
      <property name="format" value="ODL-Text"/>
      <property name="path" value="/scratch/logs/portlet-bridge.log"/>
   </log_handler>
...
</log_handlers>

<loggers>
...
   <!-- Portlet Consumer -->
   <logger name="oracle.portlet.client" level="FINEST" useParentHandlers="false">
      <handler name="portlet-consumer-handler"/>
   </logger>

   <!-- Portlet Servers -->
   <logger name="com.bea.portlets" level="FINEST" useParentHandlers="false">
      <handler name="portlet-producer-handler"/>
   </logger>
   <logger name="com.bea.netuix" level="FINEST" useParentHandlers="false">
      <handler name="portlet-producer-handler"/>
   </logger>
   <logger name="com.bea.wsrp" level="FINEST" useParentHandlers="false">
      <handler name="portlet-producer-handler"/>
   </logger>
   <logger name="oracle.portlet.producer" level="FINEST" useParentHandlers="false">
      <handler name="portlet-producer-handler"/>
   </logger>

   <!-- Portlet Bridge -->
   <logger name="oracle.portlet.bridge" level="FINEST" useParentHandlers="false">
      <handler name="portlet-bridge-handler"/>
   </logger>
   <logger name="oracle.portlet.server.bridge" level="FINEST" useParentHandlers="false">
      <handler name="portlet-bridge-handler"/>
   </logger>
...
</loggers>

ログ構成ファイルは次の場所にあります。

DOMAIN_HOME/config/fmwconfig/servers/server/logging.xml

ログ・ファイル名は、logging.xmlでも定義されています。デフォルトでは、ログ・ファイル名は次のとおりです。

DOMAIN_HOME/servers/server/logs/server-diagnostic.log

64.9.3 ポートレットでのポートレット・コンシューマ・エラーの表示

メッセージ「ポートレット・コンシューマ・エラー」(図64-15に表示)は、通常、ポートレット・コンシューマ・アプリケーションのポートレット部分の操作でエラーが発生したことを示します。

図64-15 ポートレット・コンシューマ・エラーが表示されたポートレット

図64-15の説明が続きます
「図64-15 ポートレット・コンシューマ・エラーが表示されたポートレット」の説明

問題

ポートレット・コンシューマ・アプリケーションのポートレット部分の操作でエラーが発生しました。つまり、このエラーは、リモート・ポートレット・プロデューサ・アプリケーションとは無関係です。

解決方法

診断ログ・ファイルを調べて例外の原因を特定します。

DebugErrorRendererが有効な場合は、原因例外が、ログ・ファイルへのリンクとともにポートレットに表示されます。本番モードで実行している場合は、コンシューマ側のログを調べます。

表示されるエラー・メッセージの原因となる例外がログに記録されています。可能な場合は、メッセージはログの例外スタックの先頭に格納され、例外が発生した原因であるポートレット・バインディングを示します。例64-15に、ポートレット・エラーのためにログに記録されたメッセージを示します。

例64-15 ポートレット・エラーのためにログに記録されたメッセージの例

<PortletRenderer> <setErrorState> An error has occured for Portlet Binding
portlet1.
oracle.portlet.client.container.PortletContentTypeException: Unexpected content
type "null" in WSRPGetMarkup response.
...

根本的な真の問題が何であるのかを示している可能性があるため、スタック内の原因例外には特に注意してください。

原因が内部エラーである可能性があるため、適切な一連の処理として、Oracleサポートに連絡してください。

64.9.4 ポートレットでのポートレット・タイムアウトの表示

「ポートレット・タイムアウト」がポートレットが含まれると予期されていたページの領域に表示される場合は(図64-16に表示)、コンシューマが構成されたプロデューサの応答時間だけ待機したものの、その時間内にレスポンスを得なかった、またはその時間内にレスポンスが完了しなかったことを意味します。複数の原因が考えられます。

図64-16 ポートレット・タイムアウト・エラーが表示されたポートレット

図64-16の説明が続きます
「図64-16 ポートレット・タイムアウト・エラーが表示されたポートレット」の説明

問題1

プロデューサ・マシンがオーバーロードしています。

解決方法1

プロデューサ管理対象サーバーの負荷をチェックします(この実行に使用するツールは、プロデューサ上で実行されているオペレーティング・システムに応じて異なります)。負荷が高い場合は、特定のプロセスがこの高負荷を引き起こしているかどうか、そのようなプロセスを別のマシンで実行可能かどうか、または負荷が少ない時間帯に実行可能かどうかをチェックします。高負荷を引き起こしているプロセスがない場合、Oracle WebLogic Serverが高負荷を引き起こしている場合、および負荷が一貫して高い場合は、プロデューサ・ハードウェアが適切かどうか、またはアップグレードする(またはノードをさらにクラスタに追加する)必要があるかどうかを検討します。また、Oracle WebLogic Serverの構成を調整してリクエスト・スレッド・プールのサイズを増やすことも検討します。詳細は、Oracle WebLogic Serverのドキュメントを参照してください。

問題2

ネットワークがオーバーロードしているか、コンシューマとプロデューサ間の通信に影響を与える問題がネットワークに存在します。

解決方法2

プロデューサ・マシンをコンシューマ・マシンからpingできることを確認します。ローカル・ブラウザで、プロデューサの「WSRPプロデューサ・テスト・ページ」にアクセスできることを確認します。アクセスできる場合は、この同一ページに、コンシューマ・マシンで実行中のブラウザからアクセスできることを確認します。これらの手順のいずれかが問題の原因であるもののマシンがオーバーロードしていない場合は、ネットワーク上の問題である可能性があるため、システム管理者が調査する必要があります。

問題3

プロデューサ・マシンにリクエスト・スレッドのハングを引き起こすデッドロック(スタック・スレッド)があります。

解決方法3

これは、正常な動作時には発生しません。発生した場合は、通常、プロデューサのログ・ファイルにデッドロックが発生した時点を示すエラーが含まれます。これは、問題の診断に役立ちます。場合によっては、Oracle WebLogic Serverの構成を変更することにより、デッドロックを軽減できる可能性があります。詳細は、Oracle WebLogic Serverのドキュメントを参照してください。

問題4

(データの大量処理などのために)プロデューサ・アプリケーションの動作が遅くなっています。

解決方法4

このような場合は、プロデューサ・アプリケーションが大量のデータを処理している可能性があるため、レスポンスの構築までに長時間かかります。アプリケーションが定期的に大量の情報を処理する場合は、プロデューサ・ハードウェアを追加または強化するか、ポートレット・タイムアウトの期間を増やす必要がある場合があります。ポートレット・タイムアウトは、Enterprise ManagerまたはWLST setWSRPProducerConnectionコマンドを使用して、コンシューマ・アプリケーションのプロデューサ接続で構成できます。さらに、アプリケーション内のすべてのプロデューサ接続の最小タイムアウトと最大タイムアウトは、adf-config.xmlファイルのポートレット・セクション内で構成できます。

問題5

プロデューサ・アプリケーションがデータベースなどの別のリソースからのレスポンスを待機していますが、時間がかかりすぎています(データベースがオーバーロードしている場合など)。

解決方法5

問題のリソースが正常に機能していることを確認します。正常に機能している場合、解決方法は解決方法4と同じです。

問題6

ポートレット・タイムアウト値が正しく構成されていません(タイムアウト期間が短すぎるなど)。

解決方法6

通常、ポートレットのタイムアウトは、プロデューサの登録時に設定されます。これは、ポートレットに応答する時間を与えない値に設定されている可能性があります。

また、adf-config.xmlファイルのポートレット・セクションでは、ポートレット・タイムアウトの最小値、最大値およびデフォルト値をアプリケーション全体に構成できます。最大タイムアウトは、ポートレット・プロデューサによって指定されるタイムアウトに上限を課すため、最大タイムアウトが短すぎると、プロデューサ接続に指定されたタイムアウトがより長い場合でも、望まないポートレット・タイムアウト・エラーが発生する可能性があります。

64.9.5 ポートレットでのリモート・ポートレット通信エラーの表示

画面のセクションに「リモート・ポートレット通信エラー」メッセージが表示され(図64-17に表示)、その周りに他の空白領域がある場合、この領域にはポートレットが配置される予定でしたが、アプリケーションがこれに接続できていません。

図64-17 リモート・ポートレット通信エラーが表示されたポートレット

図64-17の説明が続きます
「図64-17 リモート・ポートレット通信エラーが表示されたポートレット」の説明

問題1

プロデューサがダウンしています。

解決方法1

プロデューサ・アプリケーションが実行中でない、またはアプリケーションがデプロイされる管理対象サーバーが起動していない可能性があります。このような場合は、アプリケーションを起動する必要があります。起動が必要なアプリケーションを、ポートレット障害時に実行されるタスクに基づいて特定します。

問題2

Webサービス・セキュリティの構成が正しくありません。

解決方法2

Webサービス・セキュリティのトラブルシューティング手順は、AuthN、SSL、メッセージ・セキュリティなどの使用されているセキュリティ・プロファイルのタイプに応じて異なります。

Webサービス・セキュリティのトラブルシューティングの詳細は、『Oracle Application Server Web Servicesセキュリティ・ガイド』の章「問題の診断」を参照してください。

問題3

プロデューサ管理対象サーバーにアクセスできません。

解決方法3

ファイアウォールが介在したりルーティング規則が不正なために、プロデューサがコンシューマ・アプリケーションからアクセスできない場所にある可能性があります。Oracleのプロビジョニング・ソフトウェアによってインストールされる環境では、これは当てはまりませんが、コンシューマをホストするマシンからプロデューサのWSDLエンドポイントにアクセスできることを確認する価値はあります。それには、次のURLにアクセスします。

http://host:port/context-root/portlets/wsrp2?WSDL

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

  • hostは、ポートレット・プロデューサがデプロイされているサーバーです。

  • portは、サーバーがHTTPリクエストをリスニングするポートです。

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

次に例を示します。

http://portlets.example.com:9999/sample/portlets/wsrp2?WSDL

64.9.6 ポートレットでのリモート・ポートレット・エラーの表示

ポートレットに「リモート・ポートレット・エラー」が表示される場合は(図64-18に表示)、プロデューサがエラー・メッセージに応答したことを示します。エラー・メッセージはレスポンス・ドキュメント内にSOAPフォルト・メッセージの形式で返されます。プロデューサがエラーを返す原因は多数あります。これらのエラーを診断する最善の方法は、まず、対応する例外スタック・トレースをコンシューマ診断ログで見つけることです。このスタック・トレースには、プロデューサによって返されたフォルトの種類に加え、レスポンスに必要な詳細情報が示されています。発生する可能性のある一部のフォルトは、次のセクションに表示されます。

図64-18 リモート・ポートレット・エラーが表示されたポートレット

図64-18の説明が続きます
「図64-18 リモート・ポートレット・エラーが表示されたポートレット」の説明

問題1

OperationFailedException。これは、最も一般的なタイプのリモート・ポートレット・エラーで、プロデューサ・アプリケーションで発生する大半の未処理の例外に当てはまります。

解決方法1

OperationFailedExceptionを解決するには、コンシューマ診断ログで例外を調べます。これには、通常、最終のCaused by例外としてフォルト・レスポンスをトリガーするプロデューサ・アプリケーションで発生した例外が表示されます。

必要に応じて、プロデューサ・アプリケーションで診断ログをさらに詳細に、つまりフォルトがトリガーされる前に発生した関連する例外について調べることができます。場合によっては、プロデューサ・ログの例外が、データベース接続障害や構成上の問題などの簡単に解決できる問題を示していることがあります。例外が製品バグを示す場合もあります。

問題2

InvalidRegistrationException。このエラーは、コンシューマがプロデューサとの通信を試みる前に、プロデューサがコンシューマに適切に登録されていなかったことを示します。これは、コンシューマがプロデューサを登録してから、プロデューサのプリファレンス・ストアが移動または削除された場合にも発生します。

解決方法2

プロビジョニング時の問題が原因であると考えられます。プロデューサ・アプリケーションのweb.xmlファイルの設定を確認し、例64-16に示すエントリが存在することを確認します。

例64-16 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>Consumer</env-entry-value>
</env-entry>

問題3

InvalidHandleException。これは、コンシューマがプロデューサに、プロデューサが知らないポートレット・インスタンスをレンダリング、またはやりとりするように要求したことを示します。これは、ポートレットがページに追加されてから、プロデューサのプリファレンス・ストアがなんらかの形で破損した場合に発生する可能性があります。

解決方法3

このエラーは、解決方法2で説明したように、プロビジョニング時の問題が原因で発生するか、またはweb.xmlファイルにpersistentStore設定が存在しないことが原因で発生すると考えられます。

問題4

AccessDeniedException。これは、プロデューサ・アプリケーションが現在のユーザーには当該のポートレットやタスク・フローへのアクセス権がなかったと判断したことを示しています。

解決方法4

これは、正当なエラー・メッセージであるか、構成上の問題を示している可能性があります。ほとんどの場合、WebCenter Portalは、ポートレット・リモート・エラーを表示せずに、認可エラーを正しく処理します。