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

前
 
次
 

62 ポートレットの消費

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

この章には次の項が含まれます:

この章では、Oracle JDeveloperまたはOracle ADFページの特性の基本については説明しません。Frameworkアプリケーション・ページに固有のページ作成に関してのみ説明します。したがって、この章をお読みになる前に、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』の内容に精通しておいてください。

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

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

Oracle WebCenter Frameworkでは、ポートレット・プロデューサをアプリケーションに登録することにより、ポートレットを消費できます。アプリケーションでは、(パッケージ・アプリケーションのベンダーなどの)サード・パーティから入手したポートレットおよび自分で構築したポートレットを消費できます。

ポートレット・プロデューサは、次の2つの方法で登録できます。

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

JDeveloperは、WSRPプロデューサとOracle PDK-Javaプロデューサの両方を登録するためのウィザードを備えています。


注意:

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


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

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

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

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

この項には次のサブセクションが含まれます:

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

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


注意:

Oracle WebLogic Portalによって提供されるプロデューサを登録し、そのポートレットでADFリッチ・コンポーネントを使用する場合、WSRP 2.0 WSDL URLを登録し、ポートレットが適切に機能するようにする必要があります。


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

WSRPポートレット・プロデューサを登録するには:


注意:

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


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

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

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

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

    これは、ポートレットを消費する予定のものと同じプロジェクトです。

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

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

  5. 「接続詳細の指定」ページの「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
    
  6. アプリケーションとプロデューサがファイアウォールで区切られている場合、HTTPプロキシが、アプリケーションとプロデューサ間の通信に必要です。ご使用のアプリケーションがこれに該当する場合、「プロデューサへの連絡にプロキシを使用」を選択し、プロキシのURLおよびポート番号を指定します。


    注意:

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


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

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

  8. 「追加登録詳細の指定」ページの「デフォルト・タイムアウト間隔」(秒単位)フィールドに、デザインタイム操作中にプロデューサのレスポンスがあるまで待機する秒数を入力します。

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

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

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

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


    注意:

    この時点でセキュリティ・ロールへのユーザー・カテゴリのマップを拒否する場合、後でプロデューサ登録を編集することでそれを実行できます。


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

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

      このオプションを選択する場合、ウィザードの残りの部分を完了しないことになります。「終了」をクリックします。

    • メッセージ整合性付き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サービス・コンシューマにはSOAPヘッダーのSAMLトークンが含まれ、確認タイプはsender-vouchesです。このポリシーでは、WS-SecurityのBasic 128スイートの非対称鍵テクノロジが使用されます。具体的には、メッセージ機密保護のためのRSA鍵メカニズム、メッセージ整合性のためのSHA-1ハッシュ・アルゴリズム、およびAESの128ビット暗号化が使用されます。

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

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

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

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

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

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

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

      このポリシーには、キーストローク構成は不要です。

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

  11. 次の構成タイプから選択します。

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

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

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

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


    注意:

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


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

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

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

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

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

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

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

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

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

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

    フルパスがわからない場合は、「参照」をクリックして、そのファイルに移動して選択します。選択するファイルは、Java keytoolで作成されたキーストアです。

  17. 「ストア・パスワード」フィールドで、キーストアを作成したときに設定したパスワードを指定します。

    キーストア・パスワードは、移入先の「ストア・タイプ」フィールドおよび「署名鍵の別名」ドロップダウン・リストに対して正確である必要があります。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この手順は、第62.2.1項「WSRPポートレット・プロデューサの登録方法」から続いています。

アプリケーション定義のJava EEセキュリティ・ロールでプロデューサが宣言したユーザー・カテゴリをマップするには:

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

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

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

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

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

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

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

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


注意:

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


PDK-Javaポートレット・プロデューサを登録するには:

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

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

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

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

    これは、ポートレットを消費する予定のものと同じプロジェクトです。

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

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

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

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

    ここで:

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

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

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

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

    例:

    http://myhost.example.com:7101/myEnterprisePortlets/providers
    
  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. このプロデューサが外部アプリケーションに対する認証を提供する必要がある場合は、「プロデューサと外部アプリケーションとの関連付け」を選択し、アプリケーションを選択します。

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

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

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

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

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

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

    追加の詳細を指定するには、「次」をクリックし、残りの手順を続行します。

  11. 「追加の詳細の指定」ページの「デフォルト・タイムアウト間隔」(秒単位)フィールドに、デザインタイム操作中にプロデューサのレスポンスがあるまで待機する秒数を入力します。

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

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


    注意:

    最初の登録後にプロデューサ登録を編集して「サブスクライバID」を変更しても、何も影響を与えません。異なる「サブスクライバID」を指定するには、プロデューサを登録する必要があります。


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

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

62.4 ポートレット・プロデューサの接続の管理

ポートレット・プロデューサを登録した後、登録設定を編集、接続をテスト、プロデューサをリフレッシュして最新のポートレットのリストを取得、またはポートレット・プロデューサへの接続を削除できます。

この項には次のサブセクションが含まれます:

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

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

ポートレット・プロデューサの登録設定を編集するには:

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

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

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

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

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

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

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


    注意:

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


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

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

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

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

ポートレット・プロデューサ接続をテストするには:

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

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

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

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

62.4.3 ポートレット・プロデューサのリフレッシュ

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


ヒント:

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


ポートレット・プロデューサをリフレッシュするには:

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

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

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

62.4.4 ポートレット・プロデューサの削除

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


注意:

プロデューサを削除すると、そのプロデューサに属するポートレットを消費するページには、ポートレットが使用できないことを示すエラー・メッセージが表示されます。同じ名前を使用してそのプロデューサを再登録するしても、ポートレットは依然として使用できません。


ポートレット・プロデューサを削除するには:

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

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

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

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

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

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

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

デフォルトでは、Administratorロールを持つユーザーはポートレット・プロデューサを管理できます。他のユーザーがポートレット・プロデューサ・タスク・フローを介して接続を管理できるようにする場合は、彼らに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ユーザーとしてログインします。図62-1に示す画面が表示されます。

    図62-1 ポートレット・プロデューサ・タスク・フロー

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


    注意:

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


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

Frameworkアプリケーション・ページへのポートレットの配置は、「アプリケーション・リソース」パネルまたは「リソース・パレット」からポートレットをそのページにドラッグ・アンド・ドロップする簡単な操作で実行できます。

この項には次のサブセクションが含まれます:

始める前に

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

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

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

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

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

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

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

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

ポートレットをページに追加するには:

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


  4. アプリケーション・ナビゲータの「アプリケーション・リソース」パネルまたは「リソース・パレット」の「コネクション」ノードで、次のようにします。

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

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

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

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

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

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

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

    • JSF HTML - フォーム - ページにHTMLコンポーネントが含まれている場合(たとえば、それがアップグレード済10.1.3.2ページである場合)。これによって、囲むドキュメント・タグに応じて、h:formまたはtr:formコンポーネントが、ページに追加されます。

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


    注意:

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



注意:

ポートレットをTrinidadコンポーネントとして、つまり、tr:formコンポーネント内に追加し、そのポートレットが表示モード以外のモードを実装する場合、アプリケーションのweb.xmlファイル内に次のものを含める必要があります。

<context-param>
  <param-name>
    oracle.adf.view.rich.newWindowDetect.OPTIONS
  </param-name>
  <param-value>off</param-value>
</context-param>


注意:

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

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


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

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

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

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

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

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

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

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

例62-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コンポーネントが使用されます。この場合、例62-2に示すように、ページ上にポートレットをドラッグすると、adfph:portletタグが使用されます。

例62-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タグを含むページに配置されているポートレットは、例62-3のように配置されます。

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

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

注意:

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


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


注意:

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


62.6.3 ポートレット間通信に関する必知事項

WebCenter Portal: Frameworkアプリケーションのインタラクティブ性を高める1つの方法として、関連するコンポーネントをリンクして、これらのコンテンツをコンテキストに即して同期させる方法があります。たとえば、1つのページに2つの株式ポートレットがあり、一方は株価のデータを提供し、もう一方は株式のヘッドライン・ニュース・アイテムを提供するとします。どちらのポートレットも株式ティッカ・シンボルに基づいているため、株価ポートレット内のティッカ・シンボルが変更されると、株式ヘッドライン・ポートレットはその変更を取り込んで、同じティッカ・シンボルに関連するヘッドラインを使用して自動的にリフレッシュする、という動作は筋が通っています。

JSR 286標準では、パブリック・レンダラ・パラメータが導入されており、それを使用してページ上のポートレットをリンクできます。詳細は、第59.3.5項「JSR 286ポートレットでのパブリック・レンダラ・パラメータの使用方法」を参照してください。

JSR 286標準では、ポートレット・イベントもサポートされています。ポートレット・イベントを使用すると、ページ上の任意の場所で発生するアクションに基づいてポートレットのコンテンツを制御できます。ポートレット・イベントは、ポートレットがそれ自体のイベントをトリガーすることでイベントに応答し、それがそのページ上の他のポートレットに影響を与えるようにカスケードできます。ポートレット・イベントは、ADFコンテキスト・イベントによって消費することもでき、コンテキスト・イベントはポートレットによって消費できます。これを使用して、ポートレットとタスク・フローをコンテキストに即してリンクできます。詳細は、第59.3.6項「JSR 286ポートレットでのポートレット・イベントの使用方法」を参照してください。

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

例62-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 (デフォルト)に設定すると、そのポートレットでサポートされているものに一致する(つまり、同じQNameを持つ)、変更されたパラメータまたはページ上の任意の場所で発生したイベントによって、そのポートレットがそれに従って自動的に更新されることを意味します。さらに、ポートレットは、そのパラメータおよびイベントの別名を定義して、異なるQNameを持つパラメータおよびイベントと一致させることができます。

これらの属性をfalseに設定すると、このパラメータおよびイベントの自動リスニングを無効化できます。たとえば、ページに、同じポートレットの複数のインスタンスが含まれていて、それらは、異なるソースから値を取得する必要がある場合があります。パラメータおよびイベントの自動リスニングを無効化する場合、またはポートレットで、リンクに使用するものと一致しない名前を持つパラメータまたはイベントを定義する場合、ポートレット・ワイヤリングを手動で構成する必要があります。詳細は、第62.8項「JSR 286ポートレットでのパラメータとイベントの手動によるワイヤリング」を参照してください。

62.6.4 インライン・フレームに関する必知事項

ポートレットをページ上に直接レンダリングするほうが、インライン・フレーム(iframe)にそれを配置するよりも優れたユーザー・エクスペリエンスを提供します。ただし、ポートレット・マークアップをインライン・フレーム内に組み込む必要が生じる場合もあります。renderPortletInIFrame属性を使用して、ポートレットをインライン・フレーム内にレンダリングする必要があるかどうかを決定できます。

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

ただし、次のような状況では、ポートレットはインライン・フレーム内にレンダリングされます。

  • パーサーが、マークアップを解析できないために例外をスローします。

  • ポートレット・コードに、マルチパート・フォーム・ポストが含まれています。

  • ポートレット・コードにファイル・アップロード要素が含まれています。

  • ポートレット開発者が、portlet.xmlファイルのcom.oracle.portlet.requireIFrameコンテナ・ランタイム・オプションをtrueに設定することで、インライン・フレーム内にポートレットをレンダリングすることを明示的に要求しました。


    注意:

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


場合によっては、ポートレット・コンシューマが、Oracle ADFページ内にポートレットを含めるように、ポートレット・マークアップおよびJavaScriptをリライトできないことがあります。このような場合は、ボタンが機能しなかったり、コンソールにJavaScriptエラーが表示されるなど、ポートレットが期待どおりに動作しないことがあります。その場合は、renderPortletInIFrame属性をtrueに設定し、ポートレットが常にインライン・フレーム内にレンダリングされるようにします。

renderPortletInIFrametrueに設定する必要がある場合の例は、次のとおりです。

  • ポートレット・コードで、要素名がJavaScriptで動的に作成されます。

  • ポートレット・コードで、複数のフォームが使用されており、それらがJavaScriptで索引によって参照されます。

  • JavaScriptライブラリ・コードは、ポートレットないで要素を参照します。


注意:

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


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

インライン・フレームの使用によるアクセシビリティへの影響は、第2.9項「WebCenterアクセシビリティ機能の概要」を参照してください。

62.6.5 ポートレットのサイズ設定に関する必知事項

ADF Facesコンポーネントは、それらの子を拡大することもしないこともできます。通常、子を拡大できるようにするには、その親に含まれる子が1つのみであることが必要です。コンポーネントでは、拡大することまたは拡大しないこともサポートされています。拡大がサポートされているコンポーネントを、子を拡大する親の内部に配置すると、その子のディメンションは親のディメンションによって決定されます。その子は、親によって拡大されると言い、親を満たすようにサイズ設定されます。

コンポーネントがその親によって拡大されない場合は、それはフロー・レイアウトになっていると言います。その場合、その親からそのサイズを取得しません。それは、それ自体のサイズを、その子から、またはページ・デザイナによって指定されたディメンション・スタイル設定から決定する必要があります。

portlet Facesコンポーネントでは、その親による拡大がサポートされています。それは、その子を明示的に拡大することはありません。

portletコンポーネントのサイズを決定する方法は、そのポートレットの親コンポーネントおよびportletコンポーネント自体で設定されている属性に応じて3つあります。

  • ポートレットがその親によって拡大される場合、そのサイズは親によってのみ決定されます。ポートレットは、ストレッチ・レイアウトになっています。

    • コンテンツの大きさは関係なく、それは、そのポートレットのサイズには関係ありません。コンテンツがそのポートレットよりも大きい場合、ユーザーがすべてのコンテンツを表示できるようにスクロールバーが表示されます。

    • ポートレットの高さが指定されている場合、それは無視され、拡大が優先されます。

    • これは、望ましいレイアウト方法であり、常に信頼できます。

    • ADF Facesタグ・ドキュメントでは、各コンポーネントがその子を拡大するかどうかが指定されています。

  • ポートレットが、その親によって拡大されず、明示的なサイズが設定されている場合、それらが使用されます。

    • これも、常に信頼でき、指定したとおりのサイズになります。

    • コンテンツがその指定されているサイズトよりも大きい場合、ユーザーがすべてのコンテンツを表示できるようにスクロールバーが表示されます。

    • サイズは固定され、そのコンテンツのサイズは考慮されません。

  • ポートレットが、その親によって拡大されず、明示的なサイズが設定されていない場合、ポートレットによってコンテンツに合せた自動サイズ設定が試みられます。

自動サイズ設定

ポートレットがフロー・レイアウトになっており、明示的なサイズが設定されていない場合、スクロールバーを使用せずにそのポートレット・コンテンツをすべて表示するのに適合する大きさになるようにポートレットのサイズの設定が試みられます。

ポートレットは、スクロールバーを使用せずにコンテンツを表示するために必要な領域の大きさをブラウザに問い合せ、それを使用してポートレットの高さを設定することで、これを実現します。具体的に言えば、インライン・フレーム・ウィンドウのscrollHeightプロパティが調査されます。

これが、どの程度機能するのかは、ポートレットの中身に応じて異なります。レイアウトによっては、本来のサイズが自動サイズ設定に適しているものもあります。しかし、コンテンツを表示しないようにオーバーフローさせるものまたはスクロールバーを使用するものなど、ポートレット内のレイアウトおよびコンポーネントによって、それらのコンテンツのサイズが実質的に非表示になるものもあります。具体的に言えば、そのようなHTMLマークアップは、hiddenautoまたはscrollのオーバーフロー設定を持つHTML要素です。これは、その要素に適用されているインライン・スタイルまたはCSSスタイルの結果である場合もあります。

scrollHeightは、コンテンツを適切に表示するために最小限必要な高さであるため、問題が生じます。たとえば、overflow="auto"が設定されたdiv要素がある場合、そのdivがコンテンツよりも小さいと、スクロールバーが使用されます。したがって、divを表示するために必要な最小サイズを問い合せると、明示的な高さや最小の高さが設定されていない場合、答えは0になります。したがって、このdivのコンテンツは、それが明確な高さを持っている場合でも、そのコンテンツの全体的なスクロールの高さに関与しません。

ADFに関しては、これは、多くの場合、dimensionFrom="parent"が設定されているpanelStretchLayoutなど親からそれらのディメンションを取得すると期待されているコンポーネント、またはlayout="scroll"が設定されているpanelGroupLayoutなどそれらのコンテンツをスクロールするコンポーネントに関連しています。これらは、表示されないかスクロール可能なオーバーフローを持つ傾向にあるコンポーネントです。

ADF Facesレイアウト・モデルについて考えると、別の方法で問題を理解できます。ADF Facesのレイアウト・ガイドラインでは、親によって拡大されるコンポーネントとその中のフロー・レイアウト(通常、コンポーネントが固定の高さを持つかそれらのディメンションをそれらの子から取得するaf:panelGroupLayoutによって開始される)のアイランドからなる連鎖から始めることが示されています。ポートレットのルートに、親からディメンションを取得することを期待するコンポーネントの切れ目のない連鎖があるが、そのポートレット自体がフロー・レイアウトになっているためコンテンツからそのディメンションを決定することを期待する場合、袋小路になります。そのポートレットは、サイズについてその親からディメンションを取得することを期待しています。これに対する解決策は、ポートレットを拡大するか(つまり、それをフロー・レイアウト・アイランドから取り出す)、そのポートレットに高さを設定するか、そのポートレットのコンテンツ全体およびフロー・レイアウト・コンテンツのアイランドを作成することであることは明らかです。

コンテンツを自動サイズ設定できない場合、その高さは、デフォルトでFirefoxでは200pxに、Internet Explorerでは0pxになります。Internet Explorerが0であるのは、scrollHeightで、min-height CSSスタイル設定が正しく認識されないという不適切な動作が原因です。Firefoxの200pxの高さは、ポートレット化タスク・フローをレンダリングするリージョンに設定されているminheightによるものです。これを回避するために、コンシューマでheightまたはmin-height CSSを設定できます。

自動サイズ設定のベスト・プラクティス

コンテンツを自動サイズ設定するようにフロー・レイアウトでポートレットを使用する場合に最善の結果を得るには:

  • ポートレット・コンテンツを、子からディメンションを取得するコンポーネントからなる連鎖にします。

  • dimensionsFrom="children"属性がサポートされているコンポーネント(たとえば、af:panelStretchLayout)に対しては、それを使用し、それらがそれらの子からディメンションを取得するようにします。

  • panelGroupLayoutに対してlayout="scroll"ではなくlayout="vertical"を使用し、その子のサイズが、全体的な自動サイズ設定ディメンションに寄与するようにします。

  • コンポーネントのフロー・レイアウト連鎖からストレッチ・レイアウトに切り替える場合、子を拡大する最初のコンポーネントに明示的な高さを設定します。通常、これはdimensionsFrom="parent"を指定したpanelStretchLayoutを使用した場所になります。

62.6.6 最小化、リストアおよび移動に関する必知事項

開発環境のニーズに合せるために、Show Detail Frameおよびportletコンポーネントのアクション「最小化」、「リストア」および「移動」の動作は、設計時と実行時では異なります。設計時では、これらのアクションは特定の1つのWLSセッションでは維持されますが、セッション間では維持されません(セッションとは、WLSの開始から停止までの時間を意味します)。実行時では、これらのアクションは特定の1つのWLSセッションおよびセッション間の両方で維持されます。

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

実行時にセッション間で維持する必要がない場合は、アプリケーションのweb.xmlファイルに単純な変更を行うことでそれをオフにできます。アプリケーションのweb.xmlファイル内で、次のパラメータ設定を見つけます(例62-5)。

例62-5 アプリケーションの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>

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

例62-6 アプリケーションの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. いったんログアウトしてからユーザーとしてログインし、アクションの効果を確認します。

62.6.7 実行時の処理

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

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

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


ポートレットでパラメータまたはイベントがサポートされており、パラメータおよびイベントの自動リスニングが有効化されている場合、サポートされているパラメータおよびイベント(または別名が付けられているパラメータおよびイベント)に対するすべての変更によって、ポートレットが自動的に更新されます。

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

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

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

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

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

この項には次のサブセクションが含まれます:

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

プロパティ・インスペクタは、ソース・コードを自分で編集することなく、ポートレット・タグの属性値を設定する迅速で簡単な方法を提供します。

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

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


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

  5. プロパティ・インスペクタで、該当するタブをクリックし、目的の属性を設定します。

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

  6. 変更内容を保存します。

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

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

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

ソース・コードでポートレット・タグの属性値を設定するには:

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


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

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

  6. ソース・コードに変更を直接行います。例62-7は編集済ポートレット・タグを示しています。

    例62-7 編集済ポートレット・タグ

    <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. 行った変更をテストするには、ページを右クリックし、「実行」を選択します。

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

表62-1は、ポートレット・タグの共通属性について説明しています。

表62-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。ポートレットは、指定されたトリガー・コンポーネントをリスニングします。1つのトリガー・コンポーネントが、なんらかの方法でそれを更新するトリガー・イベントを受け取った場合、このポートレットでも更新が要求されます。


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

表62-2は、ポートレット・タグの外観属性について説明しています。

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

属性 説明

expansionMode

minimized
normal

デフォルト: normal

ポートレットのデフォルトの状態。

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

  • normal - ポートレットのデフォルト表示モードは、閉じた状態でも、ページの幅に拡大でもありません。

allModesSharedScreen

auto
false
true

デフォルト: auto

ポートレット・モードが変更されると、ポートレットが配置されているページではなく、新しいページに新しいモードがレンダリングされるかどうか。

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

  • false - View (JSR 286)またはShow (PDK-Java)を除いたすべてのポートレット・モードが、それぞれのページにレンダリングされます。これは、OmniPortletやWebクリッピング・ポートレットなどのポートレットに役立ちます。これらはShowモード以外のモードが、ポートレットが存在しないページに表示されることを要求します。

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

renderPortletInIFrame

auto
false
true

デフォルト: auto

ポートレットがIFRAME内にレンダリングされるかどうか。

  • auto - 可能な場合は、ADFページに適切にレンダリングされるように、ポートレット・コンシューマによってポートレット・マークアップのリライトが必ず試みられます。それ以外の場合は、ポートレットがIFRAME内にレンダリングされます。

  • false - ポートレットはIFRAME内にレンダリングされません。

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

詳細は、第62.6.4項「インライン・フレームに関する必知事項」を参照してください。

displayScrollBar

auto
false
true

デフォルト: auto

スクロール・バーが表示されるかどうか。

  • auto - ポートレット・コンテンツが、指定されたwidthおよびheight内に収まらない場合にスクロールバーがレンダリングされます。

  • false - スクロールバーはレンダリングされません。ポートレット・コンテンツが、指定されたheightおよびwidthに収まらない場合は、ポートレットは実際のサイズでレンダリングされます。

  • 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 - スキンにダーク・スタイル・セレクタを適用します。

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

  • medium - スキンにミディアム・スタイル・セレクタを適用します。

これは、ページ上の各ポートレットに異なるルック・アンド・フィールを適用する手段を提供します。

shortDesc

テキスト文字列。例:

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

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

displayActions

always
onHover

デフォルト: always

ポートレットのシード済相互作用が表示されるかどうか。

  • always - シード済相互作用を常に表示します。

  • onHover - ユーザーがポートレット上にマウスを移動するとシール済相互作用が表示されます。

showMoveAction

menu
none

デフォルト: menu

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

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

  • none - 「移動」コマンドを表示しません。

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

showRemoveAction

menu
none

デフォルト: menu

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

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

  • なし - 「削除」アイコンを表示しません。

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

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

showResizer

always
never

デフォルト: always

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

  • always - サイズ変更ハンドルを常に表示します。

  • never - サイズ変更ハンドルを表示しません。

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

showMinimizeAction

chrome
none

デフォルト: chrome

ポートレット・クロムに「最小化」アイコンを表示するかどうか。

  • chrome - ポートレット・クロムに「最小化」アイコンを表示します。

  • none - 「最小化」アイコンを表示しません。

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


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

表62-3は、ポートレット・タグの動作属性について説明しています。

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

属性 説明

partialTriggers

1つ以上のコンポーネントID。例:

partialTriggers="_id1 _id2 componentID5"

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

部分更新をトリガーするコンポーネントのID。ポートレットは、指定されたトリガー・コンポーネントをリスニングします。1つのトリガー・コンポーネントが、なんらかの方法でそれを更新するトリガー・イベントを受け取った場合、このポートレットでも更新が要求されます。

submitUrlParamters

false
true

デフォルト: false

ページから、ポートレットが配置されているページを指すポートレット・リンク内のパラメータを使用できるようにするかどうか。

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

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


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

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

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

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

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

表62-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)ウィザードで「編集」を選択する操作に相当します。

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

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

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

isPreviewModeAvailable

false
true

デフォルト: false

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

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


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

表62-5は、ポートレット・タグのスタイル属性について説明しています。

表62-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プロパティの理解」を参照してください。


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

表62-6は、ポートレット・タグのバインディング属性について説明しています。

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

属性 説明

binding

マネージドBeanの名前。例:

binding="#{frameActionsBean.Binding}"

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

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


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

表62-7は、ポートレット・タグのカスタマイズ属性について説明しています。

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

属性 説明

customizationAllowed

false
true

デフォルト: true

ポートレット・タグの設計時カスタマイズがこのポートレットに対して可能かどうか。

customizationAllowedBy

テキスト文字列

設計図カスタマイズが許可されるロール。この属性によってカスタマイズの許可が可能になりますが、実際にそれを誰が実行できるのかを制限します。


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

表62-8は、ポートレット・タグのその他の属性について説明しています。

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

属性 説明

iframeDtd

loose
none
strict

デフォルト: loose

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

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

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

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


62.8 JSR 286ポートレットでのパラメータとイベントの手動によるワイヤリング

ページに追加するポートレットで、そのコンテンツを動的に変更するために使用されるパラメータまたはイベントが定義される場合、多くの部分で、これは自動的に行われます。詳細は、第62.6.3項「ポートレット間通信に関する必知事項」を参照してください。

ただし、状況によっては、デフォルトのパラメータおよびイベントの自動リスニングをオフにする必要があるか、適切な別名に一致しないかそれらを定義しない名前を持つパラメータまたはイベントを持つポートレットを使用することもあります。そのような場合、ポートレット内のパラメータおよびイベントを手動でワイヤリングする必要があります。

この項には、次の項目が含まれます。

62.8.1 パブリック・レンダラ・パラメータとポートレットの手動によるリンク方法

ページ上にポートレットを配置するときに、同じQNameを持つパブリック・レンダラ・パラメータはすべて自動的にリンクされます。たとえば、1つのポートレットが、myParamという名前のパラメータに値を公開し、ページ上の2番目のポートレットが同じ名前を持つパラメータから値を受け入れる場合、2番目のポートレットは適切な値で自動的に更新されます。

ポートレット開発者がパラメータの別名を設定した場合、異なるQNameを持つパラメータを使用して、複数のポートレットを一緒にリンクすることもできます。

次の例では、パブリック・レンダラ・パラメータを使用して、異なる名前を持ち、別名を定義されていないパラメータを使用して2つのポートレット動作をリンクする方法を示しています。この例では、パブリック・レンダラ・パラメータの更新を可能にする汎用パラメータ・フォーム・ポートレットを取り上げて、どのようにして株価をレンダリングする株価ポートレットにそれをリンクして、パブリック・レンダラ・パラメータから株式記号を取得できるかを示します。

これらの2つのポートレットを同じページ上にドロップするときに、それらが自動的に互いにリンクされることはありません。これは、パラメータ・フォーム・ポートレットの汎用パラメータ名のいずれも、株価ポートレットのstocksymbolパラメータに一致せず、株価ポートレットではパラメータ・フォーム・ポートレットの汎用パラメータ名に一致するstocksymbolパラメータの別名が定義されていないためです。

パラメータを手動でリンクするには、次の2つの方法があります。

62.8.1.1 ページ変数を使用したパラメータの手動によるリンク

ポートレットがページ上にドロップされるときに、ポートレットによってサポートされているパラメータごとにページ変数が作成されます。私たちの例では、ページ変数は、パラメータ・ホーム・ポートレットに対して3つ、株価ポートレットに対して1つあります(例62-8)。

例62-8 ポートレット・パラメータに対して作成されるページ変数

<pageDefinition ...>
  <parameters/>
  <executables>
    <variableIterator id="variables">
      <variable Name="ParameterFormPortlet1_1_Parameter1"
                Type="java.lang.Object"/>
      <variable Name="ParameterFormPortlet1_1_Parameter2"
                Type="java.lang.Object"/>
      <variable Name="ParameterFormPortlet1_1_Parameter3"
                Type="java.lang.Object"/>
      <variable Name="StockPricePortlet1_1_stocksymbol"
                Type="java.lang.Object"/>
    </variableIterator>
    <portlet id="ParameterFormPortlet1_1"
             ...>
      <parameters>
        <parameter name="Parameter1"
                   pageVariable="ParameterFormPortlet1_1_Parameter1"/>
        <parameter name="Parameter2"
                   pageVariable="ParameterFormPortlet1_1_Parameter2"/>
        <parameter name="Parameter3"
                   pageVariable="ParameterFormPortlet1_1_Parameter3"/>
      </parameters>
      <events>
        <event eventType="ParametersChange"
               name="ParameterFormPortlet1_1_Event"/>
      </events>
    </portlet>
    <portlet id="StockPricePortlet1_1"
             ...>
      <parameters>
        <parameter name="stocksymbol"
                   pageVariable="StockPricePortlet1_1_stocksymbol"/>
      </parameters>
      <events>
        <event eventType="ParametersChange"
               name="StockPricePortlet1_1_Event"/>
      </events>
    </portlet>
  </executables>
  <bindings/>
</pageDefinition>

ポートレットをリンクするために、株価ポートレットが、パラメータ・フォーム・ポートレットに対して作成されるページ変数の1つからの値を使用するようにすることができます(例62-9)。

例62-9 ページ変数を使用したポートレット・パラメータのリンク

<portlet id="StockPricePortlet1_1"
         ...>
  <parameters>
    <parameter name="stocksymbol"
               pageVariable="ParameterFormPortlet1_1_Parameter1"/>
  </parameters>
  <events>
    <event eventType="ParametersChange"
           name="StockPricePortlet1_1_Event"/>
  </events>
</portlet>

ここで、パラメータ・フォーム・ポートレットの最初のパラメータ・フィールドに値を入力すると、対応するページ変数がそれと同じ値に設定され、それによって、株価ポートレットがその新しい値で更新されます。

62.8.1.2 ParametersChange ADFコンテキスト・イベントを使用したパラメータの手動によるリンク

パラメータおよび前の項で説明したページ変数をサポートするポートレットをドロップすると、ADF ParametersChangeコンテキスト・イベントがそのポートレットに対して作成されます。このイベントは、そのポートレットのパラメータの値が変更されるとトリガーされます。このイベントのペイロードは、そのパラメータの新しい値です。このイベントを使用すると、ページ定義で最初のポートレットのイベントのペイロードを2番目のポートレットのパラメータにマップするイベント・マップを作成することによって別のポートレットのパラメータの値を設定できます。例62-10は、私たちの例の場合に、このイベント・マップがどのようなものになるのかを示しています。

例62-10 ParametersChange ADFコンテキスト・イベントを使用するポートレット・パラメータのリンク

<eventMap xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
  <event name="ParameterFormPortlet1_1_Event">
    <producer region="ParameterFormPortlet1_1">
      <consumer handler="StockPricePortlet1_1">
        <parameters>
          <parameter name="stocksymbol">
                     value="${payLoad.Parameter1}"/>
        </parameters>
      </consumer>
    </producer>
  </event>
</eventMap>

パラメータ・フォーム・ポートレットの最初のパラメータ・フィールドに値を入力すると、ParametersChangeイベントがトリガーされます。このイベントのペイロードである新しいパラメータ値は、株価ポートレットに送信され、stocksymbolパラメータの値を指定するために使用されます。

62.8.2 ポートレット・イベントとポートレットの手動によるリンク方法

次の例では、異なるポートレットに対して定義されているイベントの名前が一致しない場合に、ポートレット・イベントを使用して手動でポートレットをリンクする方法を示します。


ヒント:

この項の例が含まれているZIPファイルは次の場所からダウンロードできます。

http://www.oracle.com/technetwork/middleware/webcenter/ps3-samples-176806.html


この例では、1つの会社の様々なオフイスの地理的な位置をリストした部門の位置ポートレットがあるとします。部門の位置ポートレットでは、特定の部門がポートレット内で選択されると、ポートレット・イベント(latLong)が発生します。

Googleマップを表示するマップ・ポートレットという別のポートレットがあります。マップ・ポートレットは、マップ上に表示する位置の判別に使用するポートレット・イベント(geolocation)をリスニングします。

この2つのポートレットが1つのページ上にドロップされている場合、マップ・ポートレットには、マップの表示に使用できる情報を提供するイベントが部門の位置ポートレットによって発生したことを知る方法がありません。この2つのポートレット間のリンクを作成するには、例62-11に示すようにページ定義を編集して2つのイベントの間のマッピングを明示的に作成する必要があります。

例62-11 ページ定義における明示的なイベント・マッピング

<pageDefinition ...>
  <parameters/>
  <executables>
    <variableIterator id="variables"/>
    <portlet id="DepartmentLocations1_1"
             ...
      <events>
        <event name="latLong">
          <portletevent namespace-uri="http://xmlns.oracle.com/portlet/EventSample"
                        localpart="latLong"/>
        </event>
      </events>
    </portlet>
    <portlet id="Map1_1"
             ...
      <events>
        <event name="geolocation">
          <portletevent namespace-uri="http://xmlns.oracle.com/portlet/EventSample"
                        localpart="geolocation"/>
        </event>
      </events>
    </portlet>
  </executables>
  <bindings/>
  <eventMap xmlns="http://xmlns.oracle.com/adfm/contextualEvent">
    <event name="{http://xmlns.oracle.com/portlet/EventSample}latLong">
      <producer region="DepartmentLocations1_1">
        <consumer handler="Map1_1.{http://xmlns.oracle.com/portlet/EventSample}geolocation"/>
      </producer>
    </event>
  </eventMap>
</pageDefinition>

62.9 ポートレットのコピー

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

ポートレットのコピーは、ポートレット表示タグをコピーして貼り付けること以上のものです。これには、アプリケーション・ページのソースからのポートレット関連のエントリのコピーも含まれます。また、ページ定義ファイルからポートレット関連のエントリをコピーすることと、コピーされたポートレットのバインディング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コンポーネントを配置することです。これによって、必要なコード変換が自動的に実行されます。

この項には次のサブセクションが含まれます:

62.9.1 ポートレットをコピーしてそれを同じページに配置する方法

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

同じページにポートレットをコピーして配置するには:

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


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

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

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

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

    <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属性に一意の値を指定します(例62-13)。

    例62-13 ポートレット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内に新しいメソッドを作成します。

    たとえば、例62-14に示すように、portlet1をコピーした場合、貼り付けられたコピーはマネージドBeanクラスでportet2になります。

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

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

62.9.2 アプリケーション・ページから別のアプリケーション・ページにポートレットをコピーする方法

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

1つのページから別のページにポートレットをコピーするには:

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


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

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

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

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

    <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タグが使用されていることを確認します。

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

  8. 「ソース」タブをクリックし、コピーしたコード・フラグメントを、ページ・ソースの目的の場所に貼り付けます。

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

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

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

    <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. メイン・メニューから、「ファイル」→「すべて保存」の順に選択します。

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

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

ポートレットとそれに関連するページ変数をページから削除するには:

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

  2. ページが含まれているプロジェクトを開きます。

  3. ページを見つけ、それを右クリックし、「開く」を選択します。


    ヒント:

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


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

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

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

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

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

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

    <?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. メイン・メニューから、「ファイル」→「すべて保存」の順に選択します。

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

WebCenterサービス・ポートレットは、事前定義されたすぐに使用できるプロデューサであり、WebCenter Portalサービス・タスク・フローをWSRPポートレットまたはページレットとして他のアプリケーションで公開できます。

WebCenterサービス・ポートレットは、次のポートレットを提供します。

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

WebCenterサービス・ポートレット・プロデューサは、WSRPプロデューサです。したがって、それを他のWSRPプロデューサの場合と同じ方法で、アプリケーションに登録します。


注意:

WebCenterサービス・ポートレット・プロデューサは、セキュアなプロデューサです。したがって、そのプロデューサを登録するときは、WebCenter Portalでそのプロデューサを構成するときに使用したものと同じトークンを使用する必要があります。

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


この項には次のサブセクションが含まれます:

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

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

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

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

  2. プロデューサを登録した後、そのプロデューサによって提供されるポートレットのいずれでも、Oracle Portalアプリケーションのページに追加できます。

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

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

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

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

    これを実行する方法の詳細は、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 Portal: Frameworkアプリケーション・プロデューサとの間のSAMLセキュリティに関する項を参照してください。

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

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

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

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

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

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


    注意:

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


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

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

    http://docs.oracle.com/cd/E23010_01/wci.1034/e14107/toc.htm

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

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

    http://docs.oracle.com/cd/E23010_01/wci.1034/e14107/toc.htm

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

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

    http://docs.oracle.com/cd/E23010_01/wci.1034/e14107/toc.htm

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

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

    http://docs.oracle.com/cd/E23010_01/wci.1034/e14107/toc.htm

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

WebCenterサービス・ポートレットによって提供される各ポートレットでは、各種パラメータが定義され、それによって、アプリケーションでポートレットを消費するときにそれの外観または動作を変更できます。

この項には次のサブセクションが含まれます:

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

表62-9は、WebCenterサービス・ポートレットによって提供されるすべてのポートレットに使用できるパラメータを示しています。

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

パラメータ 説明

width

消費するページ上のポートレットの幅を指定します。指定しない場合、ポートレットは、ページで許容される最大の大きさ水平方向の領域を取ります。

height

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


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

表62-10は、ドキュメント・マネージャ・ポートレットに使用できる追加のパラメータを示しています。

表62-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'}


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

表62-11は、ドキュメント・フォーラム・ポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

categoryId

ビューをスコープ設定するWebCenterポータルのディスカッション・サーバーの既存のカテゴリの識別子。

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

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

forumId

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

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

showRecursiveForums

アウトレットで、フォーラムがカテゴリのみに表示されるかサブカテゴリに表示されるかを決定します。

trueは、特定のカテゴリ/サブカテゴリの下のすべてのフォーラムが表示されることを意味しています。また、falseは、カテゴリの直接の子フォーラムのみが表示されることを意味しています。デフォルト値はfalseです。

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

isCategoryView

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

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

このパラメータは、他のパラメータと組み合されて機能します。


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

表62-12は、ブログ・ポートレットに使用できる追加のパラメータを示しています。

表62-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は、WebCenterサービス・ポートレットによって使用されるOracle Content Server接続の名前であり、dCollectionIdは、ブログとして公開するOracle Content Server上のフォルダのコレクションIDです。


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

リスト・ポートレットには、追加のパラメータは含まれていません。

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

表62-13は、投票マネージャ・ポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

showUserDataOnly

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

Yesに設定すると、そのユーザーによって作成された投票のみが表示されます。


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

表62-14は、投票の実施ポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

pollId

表示する投票のID。


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

表62-15は、お知らせポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

parentId

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

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


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

表62-16は、メール・ポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

tabularView

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


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

表62-17は、アクティビティ・ストリーム・ポートレットに使用できる追加のパラメータを示しています。

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

パラメータ 説明

advancedQuery

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

詳細は、第39.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のリストは、表F-7を参照してください。すべてのサービスがアイテムをアクティビティ・ストリームへストリームするわけではないので、リストされたすべてのサービスIDを使用できるわけではない点に注意してください。たとえば、RSSサービスはアクティビティをストリームしません。


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

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

62.11.5 WebCenterサービス・ポートレットの制限

この項では、WebCenterサービス・ポートレットを使用してリモートにアクセスされる場合のWebCenterポータル・サービスでの制限について説明します。

  • WebCenterサービス・ポートレットには、たとえば、Wikisなどリソースへのリンクを電子メールで通知する「メールの送信」オプションは含まれていません。

  • WebCenterサービス・ポートレットでは、ユーザー名をクリックしたときの「プロファイルの表示」オプションはサポートされていません。

  • WebCenterサービス・ポートレットでは、推奨はサポートされていません。

  • WebCenterサービス・ポートレットでは、匿名アクセスはサポートされていません。

  • WebCenterサービス・ポートレットは、ワークリスト・ポートレットを提供しなくなりました。

    かわりに、Oracle Business Process Managementによって提供されるタスク・リスト・タスク・フローの使用を検討してください。詳細は、『Oracle Fusion Middleware Oracle Business Process Managementユーザーズ・ガイド』のOracle Business Process Management Workspaceのタスク・フローを使用したカスタムADFアプリケーションの作成に関する項を参照してください。

  • ドキュメント・マネージャやブログ・ポートレットなど別のWebCenterサービス・ポータルからディスカッション・フォーラムへのリンクを作成する場合、カテゴリIDが0のディスカッション・フォーラムのみがリストされます。

  • ディスカッション・フォーラム、リスト、およびお知らせのポートレット内ではRSSはサポートされていません。

  • メール・ポートレットでは、メッセージを作成するときの「ユーザーの検索」オプションはサポートされていません。受信者は手動で入力する必要があります。

  • 「ダウンロードURL」オプションは、ドキュメント・マネージャ・ポートレットの「表示」メニューから使用できません。かわりに、ユーザーは、「ダイレクトURL」フィールドに指定されているURLにアクセスしてドキュメントを表示し、「ダウンロード」ボタンをクリックする必要があります。

  • 「Wordで編集」オプションは、ドキュメント・マネージャ・ポートレットの「ファイル」メニューから使用できません。

  • ドキュメント・マネージャまたはブログのポートレットの「リンクの取得」オプションからリンクを使用する場合、新しいブラウザ・セッションでそのリンクを開く必要があります。ポートレットを現在実行しているものと同じブラウザ・セッションの新しいタブでリンクを開くことはできません。

  • 「ファイル」メニューからアクセスする「サブスクライブ」オプションは、ドキュメント・マネージャまたはブログのポートレットではサポートされていません。

  • ブログ・ポートレットでブログを表示するときは、「共有」オプションを「編集」メニューから使用することはできません。

62.11.6 WebCenterサービス・ポートレットでの問題のトラブルシューティング

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

この項には、次のトラブルシューティング項目が含まれています。

62.11.6.1 お知らせまたはディスカッション・フォーラム・ポートレットの外部リンクが機能しない

問題

お知らせまたはディスカッション・フォーラム・ポートレットの外部Webページへのリンクをユーザーがクリックしても、何も表示されません。

原因

WebCenterサービス・ポートレットは、インライン・フレーム内に表示されます。たとえばGoogleなど、いくつかのWebサイトは、親フレームが同じオリジナルを持っていない場合、インライン・フレーム内に表示されません。したがって、お知らせまたはディスカッション・フォーラム・ポートレット内でこれらのWebサイトの1つにリンクする場合、リンクは表示されません。

解決方法

お知らせまたはディスカッション・フォーラム・ポートレットから外部Webページにリンクする場合、新しいブラウザ・タブまたはウィンドウにターゲットを表示することをお薦めします。これを行うには、リンクにtarget="_blank"属性を追加します。例:

<a href="http://www.google.com" target="_blank">Google</a>

62.11.6.2 ドキュメント・マネージャおよびブログのポートレットの「リンクの取得」オプションが機能しない

問題

Oracle WebCenter Interactionでドキュメント・マネージャまたはブログのポートレットを消費する場合、「表示」メニューの「リンクの取得」オプションから提供されるリンクが、Microsoft Internet Explorerで機能しません。

Oracle WebCenter Interactionの原因

Oracle WebCenter Interactionは、ページレット・プロデューサを介してWebCenterサービス・ポートレットにアクセスします。したがって、Oracle WebCenter InteractionのページでWebCenterサービス・ポートレットを消費する場合、ポートレットの基盤となっているページレットには、injectpagelet JavaScriptコールを使用してアクセスします。これにより、そのポートレット内のリンクが、URLに対するInternet Explorerの2KBの制限を超えることがあります。

解決方法

Oracle WebCenter Interactionでは、ページ上にドキュメント・マネージャまたはブログのポートレットを直接配置するかわりに、HTMLポートレットを作成してドキュメント・マネージャまたはブログのページレットをコールします。ページにHTMLポートレットを追加すると、そのページレットはインライン・フレームで参照され、それによって、Internet Explorerの2KBの制限を超える可能性が低い短いURLになります。

たとえば、ドキュメント・マネージャ・ポートレットをページに直接追加する場合、そのページレットへのコールは次のようになります。

<script type='text/javascript'> 
  injectpagelet("ServicesPortlets_PS6_49823a17-f56d-41cf-b50e-3506b4394f25", 
  "Document_Manager", "iframe ifheight=650px ifwidth=100%", "", 
  "resourceId=dev-ucm%23dDocName%3ADSS000411", "", "", "", "none", false); 
</script>

ドキュメント・マネージャ・ページレットをコールするHTMLポートレットを追加すると、次のインライン・フレームが生成されます。

<iframe id="pt-pagelet-iframe-1" frameborder="0" height='650px' width='100%'
  src='http://server.example.com:7777/inject/v2/pagelet/
  ServicesPortlets_PS6_49823a17-f56d-41cf-b50e-3506b4394f25/Document_Manager
  ?content-type=html&csapi=true&instanceid=1&chrome=none&consumepage=true
  &resourceId=dev-ucm%23dDocName%3ADSS000411'>
</iframe>

62.11.6.3 ドキュメント・マネージャおよびブログのポートレットの「推奨」タブが空である

問題

ドキュメント・マネージャおよびブログのポートレットの「推奨」タブに、推奨がリストされません。

原因

WebCenterサービス・ポートレットでは、推奨はサポートされていません。

解決方法

ドキュメント・マネージャおよびブログのポートレットから「推奨」タブを削除するには、そのポートレットを編集し、featureOffパラメータをrecommendationsに設定します。

62.11.6.4 ブログにイメージを埋め込めない

問題

Oracle WebCenter Interactionでブログ・ポートレットを消費する場合、イメージをブログ・ポストに埋め込めません。

原因

イメージのファイル名が長い(たとえば250文字以上など)場合、ブログのイメージに使用されるリソースURLの長さが、サポートされている制限を超えることがあります。

解決方法

イメージ・ファイル名の長さを減らします。

かわりに、Oracle WebCenter InteractionでWebCenterサービス・ポートレットを消費するときは、ポートレットをHTMLポートレット内に配置することをお薦めします。詳細は、第62.11.6.2項「ドキュメント・マネージャおよびブログのポートレットの「リンクの取得」オプションが機能しない」を参照してください。

62.11.6.5 「ブログ投稿」または「Wiki」でのリンクの作成時に選択したテキストが失われる

問題

ブログ・ポストまたはWikiでテキストを選択し、「リソースの選択」または「新規リソース」アイコンをクリックしてリンクを作成すると、選択したテキストが表示されなくなります。

原因

選択したテキストは、リンクの作成中は一時的に挿入カーソルに置き換えられています。

解決方法

アクションは不要です。リンクの作成を終了するか、その操作を取り消すと、選択したテキストがリストアされます。

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

この項では、ポートレットの使用中に発生する可能性のある問題のトラブルシューティングに役立つ情報を提供します。次のサブセクションが含まれます:

62.12.1 ポートレットをトラブルシューティングするための診断ツール

コンシューマとプロデューサの両方で使用できる、ポートレットでの問題の識別および解決に役立つ一連のツールがあります。

ポートレットをレンダリングするときにポートレット・エラー・メッセージが表示される場合、またはポートレットが表示されるがそれと適切に対話できない場合、その問題を診断するために従う必要があるこれらのツールの一般的な使用手順があります。

この項には次のサブセクションが含まれます:

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

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

ポートレット・インスタンスを識別するには:

  1. ブラウザの場所フィールドに次のコマンドを入力します。

    javascript:portletDebugShow()
    

    ヒント:

    Internet ExplorerおよびGoogle Chromeでは、このコマンドを場所フィールドに入力する必要があります。このコマンドをフィールドに貼り付けた場合、javascriptの部分が削除されます。

    Firefox 6以上の場合、場所フィールドにJavaScriptを入力できません。このコマンドをJavaScriptコンソールに入力する必要があります。


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

    • プロデューサ名

    • ポートレット名

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

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

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


      注意:

      破損しているポートレットは、2つのECIDを示します。1つはエラーが発生したリクエストに対するもの、1つはエラーが報告されたリクエストに対するものです。インライン・ポートレット(つまり、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コンソールに入力する必要があります。


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

ポートレット・エラーの診断における次の手順は、ポートレット・コンシューマ・テスト・ページ(図62-2に示す)にアクセスして、ポートレット・プロデューサを見つけ、必要に応じてそのポートレットを分離してテストすることです。

図62-2 ポートレット・コンシューマ・テスト・ページ

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

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

  • プロデューサ: このタブには、コンシューマ・アプリケーションに登録されているすべてのプロデューサがリストされます。1つのプロデューサを選択すると、そのプロデューサに関する具体的な情報が提供されます。

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

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

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

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

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

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

ポートレット・コンシューマ・テスト・ページにアクセスするには:

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

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

    注意:

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


  2. 後続の項で説明するように、ポートレット・コンシューマ・テスト・ページで、さらに診断手順を実行できます。

62.12.1.2.2 ポートレット・プロデューサを見つける

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

ポートレット・プロデューサを見つけるには:

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

    この情報は、第62.12.1.1項「ポートレット・インスタンスの識別」で書き留めました。

  2. 次の情報が、選択したプロデューサに対して提供されます。

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

    • 構成: 使用しているプロデューサに関連するスキン、セキュリティ、およびタイムアウトに関する可能性のある問題の詳細。

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

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

    この情報を使用して、プロデューサでの可能性のある問題を識別できます。

62.12.1.2.3 ポートレット・インスタンスを見つけて実行する

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

ポートレット・インスタンスを見つけて実行するには:

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

    この情報は、第62.12.1.1項「ポートレット・インスタンスの識別」で書き留めました。

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

    この情報は、第62.12.1.1項「ポートレット・インスタンスの識別」で書き留めました。

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

  3. 「ポートレット・コンシューマ・テスト・ページ: ポートレット」ページでは、スタンドアロン・ページとしてポートレットがレンダリングされます。このページでポートレットが適切に実行される場合、問題は、破損しているポートレットが含まれているページ上の他のコンポーネントが原因である可能性が高いです。

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

  5. ポートレットにパラメータが含まれている場合、「パラメータ」セクションに、そのポートレットのすべてのパブリック・パラメータがリストされます。任意のパラメータに対して値を入力し、ポートレットがパラメータを適切に受け取っているかテストします。

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

62.12.1.2.4 健全性チェックの実行

ポートレット・コンシューマ・テスト・ページの健全性チェック・タブ(図62-3に示す)には、すべてのプロデューサにわたるアプリケーション内のポートレット通信の状態の概要が表示されます。

図62-3 健全性チェック・タブ

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

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

このページのチェックによってUIに出力がレンダリングされることはありませんが、秘密裏にポートレットの実行可能なインスタンスが単に作成され、例外がポートレットによって返される場合は障害が報告されます。

健全性チェックを実行するには:

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

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

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

  3. リストされているプロパティすべてで健全性チェックを実行するには、「すべての健全性チェックを実行」リンクをクリックします。

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

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

図62-4 「構成」タブ

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

62.12.1.3 プロデューサ・テスト・ページの調査

コンシューマ・アプリケーションでエラーの原因を特定できない場合、次の手順は、プロデューサ・テスト・ページ(図62-5に示す)を使用して、ポートレット・プロデューサ・アプリケーションでの可能性のある問題を識別することです。

図62-5 プロデューサ・テスト・ページ

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

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

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

  • ポートレット

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

  • コンテナ構成

    コンシューマ・プリファレンス情報が格納される場所に関する情報。

  • コンテナ・バージョン

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

  • WSDL URL

    登録に使用するWeb Service Definition Language (WSDL)ドキュメントへのリンク。

  • SOAPモニター

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

プロデューサ・テスト・ページにアクセスした後、さらに診断手順を実行できます。

この項には次のサブセクションが含まれます:

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

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

プロデューサ・テスト・ページにアクセスするには:

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

    http://host:port/context-root/info
    
  2. 後続の項で説明するように、プロデューサ・テスト・ページで、さらに診断手順を実行できます。

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

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

JSFポートレットをサーブレットとして実行するには:

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

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

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

  3. ポートレットがパラメータを取る場合、「パラメータの表示」をクリックして、それらをリストし、値を指定します。「サーブレットとして実行」をクリックすると、ポートレット・コールにそのパラメータ値が含められます。

62.12.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設定が設定されていることを確認する必要があります。


62.12.2 ポートレット・ログ・ファイルの構成

ポートレットの問題をトラブルシューティングするには、ポートレット・ログハンドラおよびロガーを、ロギング構成ファイルlogging.xmlに追加すると便利です。

例62-18は、ポートレット・ログハンドラおよびロガーの追加方法を示しています。この例では、コンシューマおよびプロデューサのアプリケーションが同じWebLogic Serverインスタンス上で実行されていると想定します。異なるインスタンスでコンシューマおよびプロデューサのアプリケーションを実行している場合は、それらを適切に分割する必要があります。


注意:

ファイルの終わりにログ・エントリを追加すると、シードされた設定がそれらによってオーバーライドされるようになります。


例62-18 ポートレットの問題をトラブルシューティングするためのログ・ファイルの構成

<!-- 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

62.12.3 ポートレットにポートレット・コンシューマ・エラーが表示される

メッセージ「ポートレット・コンシューマ・エラー」(図62-6に示す)は、通常、エラーが、ポートレット・コンシューマ・アプリケーションのポートレット部分の操作内で発生したことを示します。

図62-6 ポートレット・コンシューマ・エラーが表示されているポートレット

図62-6の説明が続きます
「図62-6 ポートレット・コンシューマ・エラーが表示されているポートレット」の説明

問題

エラーは、ポートレット・コンシューマ・アプリケーションのポートレット部分の操作内で発生しました。つまり、エラーは、リモート・ポートレット・プロデューサ・アプリケーションには関係ありません。

解決方法

診断ログ・ファイルを調べて、例外の原因を判別します。

DebugErrorRendererが有効化されている場合、原因例外が、ログ・ファイルへのリンクとともにポートレット内に表示されます。本番モードで実行している場合は、コンシューマ側のログを参照してください。

エラー・メッセージが表示される原因となった例外が記録されています。可能な場合は、メッセージは、例外スタックの先頭でログに含められ、例外がどのポートレット・バインディングに対して発生したかを示します。例62-19は、ポートレット・エラーに対して記録されたメッセージを示しています。

例62-19 ポートレット・エラーに対して記録されるメッセージの例

<PortletRenderer> <setErrorState> An error has occured for Portlet Binding
portlet1.
oracle.portlet.client.container.PortletContentTypeException: Unexpected content
type "null" in WSRPGetMarkup response.
...

スタック内の原因例外に特に注意してください。これが、元になっている実際の問題が何かを示している可能性があります。

原因は、内部エラーである可能性が高く、適切な対処方法は、Oracleサポートに連絡することです。

62.12.4 ポートレットにポートレット・タイムアウトが表示される

ページのポートレットが表示されることが期待されている領域に「ポートレット・タイムアウト」が表示される場合(図62-7に示す)は、構成済の時間だけ、コンシューマはプロデューサのレスポンスを待機したが、その時間中にレスポンスがなかったか、レスポンスがその時間中に完了しなかったことを意味します。原因はいくつか考えられます。

図62-7 ポートレット・タイムアウト・エラーが表示されているポートレット

図62-7の説明が続きます
「図62-7 ポートレット・タイムアウト・エラーが表示されているポートレット」の説明

問題1

プロデューサ・マシンがオーバーロードになっています。

解決策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ファイルのポートレット・セクションで、ポートレット・タイムアウトの最小、最大およびデフォルト値をアプリケーション全体にわたって構成できます。最大タイムアウトによって、ポートレット・プロデューサによって指定されるタイムアウトの上限が設定されるため、最大タイムアウトが短すぎると、プロデューサ接続で指定したタイムアウトが長い場合でも、予期しないポートレット・タイムアウト・エラーが発生することがあります。

62.12.5 ポートレットにリモート・ポートレット・コンシューマ・エラーが表示される

画面のセクションに「リモート・ポートレット通信エラー」メッセージ(図62-8に示す)が表示され、その周囲に、それ以外の場合は空白のリージョンがある場合は、その領域はポートレットが表示されることが予期されており、アプリケーションとそれとのやり取りができていません。

図62-8 「リモート・ポートレット通信エラー」を表示するポートレット

図62-8の説明が続きます
「図62-8 「リモート・ポートレット通信エラー」を表示するポートレット」の説明

問題1

プロデューサが停止しています。

解決策1

プロデューサ・アプリケーションが実行されていないか、それがデプロイされている管理対象サーバーが起動されていない可能性があります。この場合、起動する必要があります。ポートレット障害が発生した時点で試みていたタスクに基づいて起動する必要があるアプリケーションを特定します。

問題2

Webサービス・セキュリティが不適切に構成されています。

解決策2

Webサービス・セキュリティのトラブルシューティング手順は、使用しているセキュリティ・プロファイルのタイプ(たとえば、AuthN、SSLまたはMessage Security)に応じて異なります。

Webサービス・セキュリティのトラブルシューティングの詳細は、『Oracle Application Server Web Servicesセキュリティ・ガイド』の問題の診断に関する項を参照してください。

問題3

プロデューサ管理対象サーバーにアクセスできません。

解決策3

プロデューサは、介在するファイアウォールまたは不適切なルーティング・ルールのために、コンシューマ・アプリケーションからアクセスできない場所に配置されていることもあります。オラクル社のプロビジョニング・ソフトウェアによってインストールされた環境では、これは発生しませんが、次の場所に移動することで、コンシューマをホストしているマシンからプロデューサのWSDLエンドポイントにアクセスできることを確認してみる価値はあります。

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

ここで:

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

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

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

例:

http://portlets.example.com:9999/sample/portlets/wsrp2?WSDL

62.12.6 ポートレットにリモート・ポートレット・エラーが表示される

ポートレットで「リモート・ポートレット・エラー」 (図62-9に示す)が表示される場合、これはプロデューサがそのエラー・メッセージでレスポンスしたことを示しています。エラー・メッセージは、レスポンス・ドキュメント内のSOAPフォルト・メッセージの形式で返されます。プロデューサがエラーを返す理由はいくつかあります。これらのエラーを診断する最適な方法は、最初にコンシューマ診断ログ内の対応する例外スタック・トレースを見つけることです。このスタック・トレースは、プロデューサによって返されたフォルトの種類と、レスポンスに必要な詳細情報を示します。発生する可能性があるいくつかの障害は、後続の項でリストします。

図62-9 「リモート・ポートレット・エラー」を表示するポートレット

図62-9の説明が続きます
「図62-9 「リモート・ポートレット・エラー」を表示するポートレット」の説明

問題1

OperationFailedException。これは、最も一般的なタイプの「リモート・ポートレット・エラー」であり、プロデューサ・アプリケーション内で発生した未対応の例外に対する包括的なものです。

解決策1

OperationFailedExceptionを解決するには、コンシューマ診断ログで例外を調べます。これは、通常、最後のCaused by例外としてフォルト・レスポンスをトリガーするプロデューサ・アプリケーションで発生した例外を示します。

必要に応じて、詳細やそのフォルトがトリガーされる前に発生した関連する例外についてプロデューサ・アプリケーションの診断ログを調査できます。場合によっては、プロデューサ・ログの例外が、データベース接続障害や構成の問題など、簡単に解決できる問題を示していることもあります。ほかに、例外が製品バグを示していることもあります。

問題2

InvalidRegistrationException。このエラーは、コンシューマがプロデューサとの通信を試みる前に、そのプロデューサがコンシューマに適切に登録されていなかったことを示します。これは、コンシューマが登録した後に、プロデューサのプリファレンス・ストアが移動されたか削除された場合にも発生することがあります。

解決策2

最も可能性が高い原因は、プロビジョニング中の問題です。プロデューサ・アプリケーションのweb.xmlファイル設定を確認して、例62-20に示すエントリが存在していることも確認する価値はあります。

例62-20 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では、ポートレット・リモート・エラーが表示されることなく、認可エラーは正常に処理されます。