Portalのページレット・プロデューサを使用したページレットの作成ページレットは、再使用可能なユーザー・インタフェース・コンポーネントです。任意のHTMLフラグメントをページレットにできますが、ページレット開発者は、パラメータ化された構成可能なページレットを記述し、その他のページレットと動的にやりとりし、ユーザー入力に応答するようにすることもできます。ページレットは、ポートレットに似ていますが、ポートレットがポータル専用に設計されていることに対して、ページレットは、ポータルやその他のWebアプリケーションを含め、あらゆるWebページで実行できます。ページレットを使用すれば、他のWeb環境でプラットフォーム固有のポートレットを公開できます。Ensemble)は、動的なページレット開発を容易にする有用なツールと機能のコレクションを提供します。この章では、ページレット・プロデューサを使用したページレットの開発および構成の詳細について説明します。詳細は、「ページレット・プロデューサ」ブログ(https://blogs.oracle.com/ensemble/)を参照してください。この項では、ページレット・プロデューサがプロキシ・サーバーとして動作し、クライアント・コンピュータと外部リソースとの間のトランザクションを仲介(ブローカ)する方法について説明します。Portalでのページレットの使用方法について説明します。JDeveloperを使用してページレットをJSFページにドラッグ・アンド・ドロップする方法について説明します。この項では、JavaScriptまたはRESTを使用して、ページレットをプロキシされたまたはプロキシされていないページに挿入する方法について説明します。この項では、コンポーザを使用してページレットをスペースに追加する方法について説明します。この項では、ページレット・プロデューサを使用したページレットの構築の詳細について説明します。この項では、アダプティブ・ページレットのスクリプティング・フレームワークを使用し、動的でインタラクティブな機能を備えた調整されたページを作成する方法について説明します。この項では、ページレットおよびリソースのセキュリティ設定を構成し、ユーザーの認証を管理する方法について説明します。この項では、カスタムのWebインジェクタとパーサーを使用して実行時にページレットの機能を変更する方法について説明します。この項では、ページレットのデバッグ用の拡張ロギング・トレースにアクセスする方法について説明します。JPDKポートレットを表示する方法について説明します。JPDKポートレットでマークアップを変更する方法について説明します。Portalからユーザー情報を取得する方法について説明します。Sitesでコンテンツ・ソースとして使用する方法を説明します。サーバー通信とプロキシの概要ページレット・プロデューサはプロキシ・サーバーとして動作し、クライアント・コンピュータと外部リソース間のトランザクションを仲介(ブローカ)します。外部リソースのサービスは、HTTP経由でページレット・プロデューサと通信します。ブラウザがページをリクエストすると、ページレット・プロデューサが各外部リソースに対する同時リクエストを作成し、ページからページレット・コンテンツを取得します。外部リソースは、現在のユーザーのプリファレンスをページレット・プロデューサから送信されたHTTPヘッダーから読取り、適切なHTMLを戻します。ページレット・プロデューサはHTMLをページ・マークアップに挿入します。イメージ・サービスに格納されたイメージは、ブラウザによって取得、表示されます。ページレット・プロデューサのプロキシプロキシ・サーバーは、クライアント・コンピュータと別のサーバー間のトランザクションを仲立ちする仲介役として動作します。この構成は通常、それ以外の方法では外部リソースにアクセスできない可能性のあるクライアントに対するコンテンツとして使用されますが、これは、ポリシーの使用も含めて、クライアントに対して追加のセキュリティ制約を課するために使用できます。プロキシでは、外部リソースは表示されません。エンド・ユーザーにとって、コンテンツはプロキシ・サーバーから直接送られてくるように見えます。このアーキテクチャにより、ページレット・プロデューサはコンテンツの単一アクセス・ポイントとなり、外部リソースがプライベート・ネットワークやファイアウォールの内側に存在できるようになります。ページレット・プロデューサが外部リソースに接続できるかぎり、ユーザーはコンテンツに直接アクセスできない場合でも、そのコンテンツを表示できます。ブラウザにとっては、ページレット・プロデューサは外部リソースのコンテンツのソースであるように見えます。ユーザーがサービスと相互作用する際、プロキシで行われたURLへのリクエストはすべて、ページレット・プロデューサを通して自動的に再ルーティングされます。ユーザーにとって、コンテンツはページレット・プロデューサから送信されてくるように見えます。外部リソースは不明のバックエンド・システムです。この構成には多くのメリットがあります。サービスに最も役に立つメリットは次のとおりです。ページレット・プロデューサは、ページレットからリクエストをインターセプトします。これにより、MDSに格納されている情報をHTTPリクエストとレスポンスに組み込むことができます。サービスを使用すると、ユーザーはパブリックに使用できないコンテンツにアクセスできます。特定のURLをプロキシの構成に含めることにより、保護されたサーバーに格納されているファイルが使用可能になります。注意:プロキシは強力な機能であるため、不適切に構成された場合はセキュリティを著しく低下させます。保護されていないプライベート・コンテンツをホストしている外部リソースに直接アクセスできるようにすると、危険なセキュリティ・ギャップが生じる可能性があります。ページレット・プロデューサはプロキシ・コンテンツをキャッシュし、エンド・ユーザーに対するレスポンス時間を短縮し、外部リソースのパフォーマンスを向上します。プロキシはHTMLなどのコンテンツに対しては効率的に機能しますが、静的イメージなどのバイナリ・データには通常は適していません。イメージは変換する必要がないため、大きなイメージをプロキシすると、パフォーマンスに悪影響を与える可能性があります。これが、イメージ・サービスを使用してプロキシ経由での静的イメージのルーティングを避ける必要がある1つの理由です。サービス用にプロキシする必要があるURLのコレクションは、リソース・エディタで構成されます。リソース用に構成された内部URL接頭辞を使用する、またはプロキシされた別のCSPやWebリソースを指すすべてのURLは、「URL再書きこみの有効化」の選択を解除しないかぎり、プロキシされます。プロキシを使用するサービスを実装する場合は、次の警告とベスト・プラクティスに留意してください。ページレット・プロデューサは、プロキシされるURLを正確に開くため、コードを変換する必要があります。ページレット・プロデューサは、レスポンスを送信する前に、HTMLを解析し、関連するプロデューサ・リソース用に構成された内部URL接頭辞を使用するURLを探します。ページレット・プロデューサは、レスポンスをクライアントに返す前に、プロキシするURLを変換します。関連するURLは、正しい場所を指すように変換されます。URLを動的に作成するJavaScript構成は、コンテンツがすでに変換された後に実行されるため、問題を起こすことがあります。VBScriptはプロキシによって変換されません。使用しているコードがプロキシを認識するかぎり、動的スクリプトとVBScriptを引き続き使用できます。パーサーとWebインジェクタを使用して、URLのリライトに対するターゲット・コントロールを実装できます。Portalのページレット・プロデューサの管理」の章を参照してください。予期しない変換を防ぐために、URLであるヘッダーをすべてエンコードすることはベスト・プラクティスです。JSPでは、書き込まれたURLをすべてエンコードします。コードによってページ本体にURLが書き込まれる場合は(たとえば、プリファレンス・ページへのリンクなど)、そのコードをエンコードする必要があります。標準のJavaサーブレット・コマンド、response.encodeURL()は優先される方法ですが、URLEncoder.encode(url)も使用できます。Frameworkでは、HttpUtility.URLEncodeクラスによって必要な機能が提供されます。ページレットとプロキシの概要すべてのページレットは、他のページレットと一緒に表示されるように設計されています。前の項で説明したように、ページレット・プロデューサはプロキシとして機能し、複数のアプリケーションのページレットを処理して組み合せ、様々な機能を持つ単一の統合されたページを作成します。ページレットが返したコードはページレット・プロデューサ・サーバーによって解析され、ページを構成するHTMLマークアップに挿入されます。同じバックエンド・アプリケーションのページレットは、ページ内で互いにやりとりできます。注意:.NETでは、リダイレクトURLをエンコードする必要はありません。これは、バックエンドで自動的に処理されます。HTTPとCSPについてHTTPはWebページのコンテンツとXMLをサーバーとクライアント間で送信するためにもっぱら使用されるプロトコルです。1.1に基づいたプラットフォームに依存しないプロトコルで、ページレット・プロデューサと外部CSPリソース間の通信構文を定義します。HTTPHTTP通信は、リクエストとレスポンスで構成されます。リクエストとレスポンスは、基本的にはヘッダー内のメタデータの名前/値ペアのリストで、オプションでボディが付いています。ボディは、送信されているデータ(HTMLページまたはXMLファイル)です。ヘッダー内のメタデータは、リクエストまたはレスポンス自体の情報(コンテンツを表示する言語、ブラウザがコンテンツをキャッシュする期間など)です。リクエストとレスポンスには、それぞれ、次に概説される固有の情報が含まれています。2616を参照してください(http://www.faqs.org/rfcs/rfc2616.html)。クライアントはサーバーにHTTPリクエストを送信し、コンテンツを要求します。リクエスト・ボディは、POSTやPUTなど、サーバーにデータを送信するリクエストにのみ使用されます。username=JoeSmithサーバーは、ページ・コンテンツ、およびコンテンツのタイプ、ドキュメントの最終変更時期、サーバー・タイプなどの重要な詳細を含むHTTPレスポンスを返します。リクエストされたコンテンツが見つからない場合は、レスポンスにエラー・メッセージが含まれます。content...カスタムHTTPヘッダーを、特殊な情報を格納するように構成できます。注意:ヘッダー・サイズ制限は、コードをホストしているサーバーによって制御されます。IIS/ASPの標準制限は60Kです。Javaアプリケーション・サーバーの場合は2Kから10Kまでです。これらの制限は通常、構成可能です。詳細は、使用しているサーバーのドキュメントを参照してください。Basic認証ヘッダーなどの標準のHTTPヘッダーにアクセスできます。HTTPをさらに調べる場合は、ロギングを使用して、ブラウザとWebサーバー間でやりとりされるすべてのヘッダーを表示できます(第65.3.4項「ページレットのデバッグ」を参照)。HTTPは、SSLとともに使用され、セキュアなコンテンツを提供します。シングル・サインオン(SSO)でもBasic認証用のHTTPヘッダーが使用されます。Interactionポートレット)間で設定を受け渡しします。CSPでは、これらのサービスがHTTPを使用して設定を通信および変更する方法の概略を記述します。最新バージョンの1.4は次の場所で入手できます:http://download.oracle.com/docs/cd/E13158_01/alui/wci/docs103/devguide/references/CSP1.4.pdf。システムとユーザー構成変数の通信に使用されるカスタムCSPヘッダーは、ページレットでも使用できます。説明ユーザーID現在ログインしているユーザーのユーザーID。この値は、セッションの有効期限を判別するときに使用できます。UserID=2の場合、デフォルトの'Guest'ユーザーがログインして、その他のユーザーのセッションはすべて終了します。ユーザー名ログインしているユーザーの名前。ユーザー名は、表示のパーソナライズやフォーム・フィールドの事前指定に使用できます。イメージ・サービスのURLページレット・プロデューサのユーザー実装での、イメージ・サービスの仮想ルート・ディレクトリのURL。この場所は、サービスで使用されるすべての静的イメージに使用する必要があります。スタイルシートのURL現在のユーザーのスタイルシートのURL。ページレット・プロデューサの実装ごとに、UIはカスタマイズされます。一部のポータルでは、ユーザーはスタイルシートの中から選択できます。これらのスタイルを使用すると、ページレットが、現在のユーザーによるページレット・プロデューサの実装スタイルで表示されます。ページレットID現在のリソース(ページレット)のID、および現在のページレットのインスタンスID。この値は、HTMLフォームおよびクライアント側JavaScript機能の名前に追加し、ページ上のフォームや機能の一意の名前を確保して名前の競合を回避するために役立ちます。ホスト・ページのURLページレットをホストするページのURL。設定の構成後にユーザーを正しいページに戻すために、プリファレンス・ページにはこのURLが必要です。この値を使用して、単一のページレットで様々なページに各種コンテンツを表示できるようにすることもできます。Spacesのページに追加する方法について説明します。Portal管理者ガイド』で説明されているように、ページレット・プロデューサでリソースとページレットをデプロイして構成する必要があります。JDeveloperを使用すると、JSFページにページレットをドラッグ・アンド・ドロップできます。Frameworkアプリケーションに登録し、ページレットをJSFページに追加し、ブラウザでページを表示してページレットをテストします。Frameworkアプリケーションへのページレット・プロデューサの登録ページレットをJSFページに追加する前に、ページレット・プロデューサをアプリケーションに登録する必要があります。ページレット・プロデューサは次の2つの方法で登録できます。特定のアプリケーションにプロデューサを登録。Producer」ダイアログで、「IDE接続」オプションが選択されています。「リソース・パレット」を使用してプロデューサを登録。このオプションを使用すると、プロデューサのページレットを複数のアプリケーションで使用できます。「リソース・パレット」で使用可能なページレットは、ページ上にドロップすることにより、任意のFrameworkアプリケーションに追加できます。「リソース・パレット」からページレットを追加する際、まだ登録されていない場合には、そのプロデューサはアプリケーションに登録されます。アプリケーション・ナビゲータの「アプリケーション・リソース」パネルに、「リソース・パレット」からプロデューサ接続全体をドラッグ・アンド・ドロップすることもできます。これにより、プロデューサがアプリケーションに登録されます。JDeveloperを使用してページレット・プロデューサを登録するには:アプリケーション・ナビゲータの「アプリケーション・リソース」パネルで、「接続」を右クリックして「接続の作成」を選択し、「ページレット・プロデューサ」を選択します。「リソース・パレット」からの起動など、ウィザードを起動するその他の方法については、第1.6.2項「接続ウィザードにアクセスする方法」を参照してください。Producer」ダイアログの「名前」フィールドに、意味のわかりやすいプロデューサ名を入力します。myPageletProducerと入力します。「URL」フィールドに、ページレット・プロデューサのURLをhttp://hostname:portnumber/pageletsの形式で入力します。「OK」をクリックします。Producerディレクトリ下に作成されます。JSFページへのページレットの追加ページレットをページに追加するには:JDeveloperで、JSFページがまだ開いていない場合は、そのページを「デザイン・ビュー」で開きます。「アプリケーション・リソース」パネルまたは「リソース・パレット」の「IDEリソース」パネルに進みます。「ページレット・プロデューサ」で、プロデューサを開いてそのコンテンツを表示します。プロデューサのコンテンツから、JSFページにページレットをドロップします。このページレットでIFRAMEを有効化する場合は、「ページレットのページへの追加」ダイアログの「IFrameの使用」セクションで「はい」を選択します。IFrame高さフィールドでは、必要な高さをピクセルで指定するか、空白のままにします。高さを「auto」と指定して、自動サイズ変更を使用することもできます。(このオプションを使用するには、プロジェクトにIFrameサイズ変更ページを追加する必要があります。詳細は、第65.2.2.3項「IFrameへの自動サイズ変更の使用」を参照してください。)「OK」をクリックします。「タスク・フロー・バインディングの編集」ダイアログでは、入力パラメータがデフォルトで指定されています。必要に応じて任意のパラメータを変更し、「OK」をクリックします。「構造」ウィンドウでは、ページは図65-2のように表示されます。「構造」ウィンドウのページレット」の説明アプリケーション・ナビゲータの「プロジェクト」で該当のJSFページを右クリックし、「実行」を選択します。ログイン・ページが表示される場合は、ユーザー名とパスワードを入力しページレットを表示できるようにします。図65-3に、ブラウザ・ウィンドウでのページレットのサンプルを示します。(OSSO)の構成に関する項を参照してください。Webページへのページレットの追加ページレットをデプロイすると、JavaScriptまたはRESTを使用してページレットをプロキシされたページやプロキシされていないページのどちらにも挿入できます。ページレット・プロデューサを使用すると、簡単なJavaScript機能を使用してページレットをプロキシされていないページに挿入できます。APIを使用すると、リモートWebサービスでリソースやページレットの情報をページレット・プロデューサから取得し、ページレットをプロキシされたページやプロキシされていないページのどちらにも注入できます。ページレット注入機能を使用すると、ページレットのコンテンツをカプセル化するIFrameのサイズを自動的に変更できます。簡単なJavaScript機能を使用して、ページレットをプロキシされていないページに挿入できます。この機能をアクティブにするには、次のHTMLスニペットをページの<HEAD>セクションに追加します。src="http://proxy:port/pagelets/inject/v2/csapi"></script>このスクリプトを実行すると、すべてのCSAPIおよびページレット注入関数がページレットを表示するページに注入されます。注入されたセクションの1つには、次の関数があります。...}この関数は、ページレットをウィジェットとして親ページに注入します。メソッド・インタフェースでは、次のパラメータが使用されます。注入するページレットのライブラリ名を表す文字列です。Unicode文字と数字のみ使用でき、スペースを含めることはできません。注入するページレットの名前を表す文字列です。Unicode文字と数字のみ使用でき、スペースを含めることはできません。ページレット・コンテンツの周囲にIFRAMEを使用するかどうかを指定します。frameborder=0のようになります。省略または空白のままにすると、ページレット・コンテンツがインラインにレンダリングされます。ページレット・リクエストで送信するXMLペイロード。問合せ文字列形式のページレット・パラメータ。'param1=value1&param2=value2&param3=value3'のようになります。ページレット・インスタンスの外部識別子で、プリファレンスのスコープをページレット・プロデューサ・サーバーに設定するために使用されます。整数を指定する必要があります。ページレット・コンテンツの注入先のHTML要素IDです。省略されたまたは空白のままの場合は、injectpageletコールが評価された場合に、document.write()を使用してページレット・コンテンツが注入されます。このページレットがコミュニティまたはグループ・ページのいずれにあるのかを指定します。値がtrueに設定されている場合は、コミュニティIDヘッダーのcontext_idがページレットに送信されます。デフォルトはfalseです。WSRP/JPDKページレット用に使用するChromeテンプレートの名前を指定します。Chromeが表示されないようにするには、値にnoneを指定します。問合せ文字列引数を消費ページからバックエンド・サーバーに転送するかどうかを指定します。この機能を抑制するには、値falseを使用します。注意:これらの引数は前後関係に依存しているため、所定の順番で指定する必要があります。特定の引数を指定せずに後続の引数を指定するには、指定しない引数を空の値('')で渡す必要があります。libraryおよびnameを除くすべての引数はオプションです。このスクリプトによって、injectpagelet関数への参照を含む、一意の名前を持つ新しい<div>も作成されます。次に例をいくつか示します。JavaScriptを使用したプリファレンス・エディタの追加injecteditor関数を使用すると、ユーザーがこの機能をサポートするページレットに個人プリファレンスと共有プリファレンスを設定できるようにするプリファレンス・エディタを追加できます。Portalのパーソナライズ機能とカスタマイズ機能に似ています。注入するページレットのライブラリ名です。Unicode文字と数字のみ使用でき、スペースを含めることはできません。注入するページレットの名前です。Unicode文字と数字のみ使用でき、スペースを含めることはできません。この引数では、値admin、pagelet、communityをサポートします。CSPヘッダーのページレットに送信されます。ページレット・エディタのコンテンツの周りにIFRAMEを使用するかどうかを指定します。frameborder=0のようになります。省略または空白のままにすると、エディタ・コンテンツがインラインにレンダリングされます。ページレット・インスタンスの外部識別子で、プリファレンスのスコープをページレット・プロデューサ・サーバーに設定するために使用されます。整数を指定する必要があります。ページレット・コンテンツの注入先のHTML要素IDです。injecteditorコールが評価された場合に、document.write()を使用してページレット・コンテンツが注入されます。このページレットがコミュニティまたはグループ・ページのいずれにあるのかを指定します。値がtrueに設定されている場合は、コミュニティIDヘッダーのcontext_idがページレットに送信されます。デフォルトはfalseです。WSRP/JPDKページレット用に使用するChromeテンプレートの名前を指定します。Chromeが表示されないようにするには、値にnoneを指定します。注意:これらの引数は前後関係に依存しているため、所定の順番で指定する必要があります。特定の引数を指定せずに後続の引数を指定するには、指定しない引数を空の値('')で渡す必要があります。libraryおよびnameを除くすべての引数はオプションです。Transferを表すRESTは、HTTPを介してAPIを提供する簡単な手法です。RESTの基本原則は次のとおりです。URLは汎用的なメソッド・エンドポイントではなくリソースを指します。リクエストでは、簡素化されたCRUDメソッドに標準のHTTP動詞を使用します。これは読取り専用APIで、GETリクエストのみを許可します。すべてのリクエストは、取得したオブジェクト(ページレットまたはリソース)の完全表現を返します。APIには、次の機能があります。Portal、またはその他のサードパーティ・ポータルのポートレット・プロバイダとして動作できるようにします。詳細は、第65.2.2.2.1項「ページレット注入API」を参照してください。リモートWebサービスで、リソースとページレットに関する情報をページレット・プロデューサから取得できます。詳細は、第65.2.2.2.2項「データ取得API」を参照してください。ページレット注入APIページレット注入URLは、リモート・ポートレットの場所を指定するためにポータルで使用できます(この方法でページレットをポートレットとして使用できます)。注入URLを、HTMLページでIFrameタグのsrc属性として使用することもできます。URLは次の形式を使用する必要があります。http://host:port/pagelets/inject/v2/pagelet/libraryname/pageletname?content-type=htmlここで、librarynameおよびpageletnameは、ページレット・プロデューサで構成されたライブラリとページレットを参照します。InteractionでポートレットWebサービスのURLとして使用する場合は、URLのpageletをportletに切り替える必要があります。前述のURLは次のようになります。http://host:port/pagelets/inject/v2/portlet/libraryname/pageletname?content-type=html前述のコールに対する問合せ文字列引数は、ページレットが返される方法を定義します。次のパラメータが定義されます。ページレットのインスタンスIDで、ページ上のページレットを一意に識別し、ページレット間通信を容易にするために使用されます。ページに対して一意である必要があります。ページレットのインスタンスの外部識別子で、ページレット・プロデューサ・サーバー上でのプリファレンスのスコーピングに使用されます。整数を指定する必要があります。次の3つの型がサポートされています。注入可能なコードが返されます。ページレット・マークアップがそれに関連付けられたPTPortletオブジェクトとともに返されます。ページとの直接インラインを実行するかわりにIFrameにページレットのコンテンツを入力して、注入APIを再び指し示すIFrameを返します。IFrameは、一連の問合せ文字列パラメータを指定することによってスタイルを設定できます。パラメータ説明デフォルトifwidthIFrameの幅を設定します。パーセント'%'またはピクセル'px'で指定できます。ifwidth=500px。'auto'に設定すると、コンテンツの幅に収まるようにIFrameを自動的にサイズ変更できます。詳細は、第65.2.2.3項「IFrameへの自動サイズ変更の使用」を参照してください。100%ifheightIFrameの高さを設定します。パーセント'%'またはピクセル'px'で指定できます。ifheight=500px。'auto'に設定すると、コンテンツの幅に収まるようにIFrameを自動的にサイズ変更できます。詳細は、第65.2.2.3項「IFrameへの自動サイズ変更の使用」を参照してください。デフォルトなしifborderIFrameの境界を設定します。noneifalignIFrame内の位置あわせ規則を設定します(ifalign=centerなど)。デフォルトなしifdescIFrameの説明を設定します。デフォルトなしifmarginheightマージンの高さを設定します。パーセント(%)またはピクセル(px)単位で指定できます(ifmarginheight=500pxなど)。デフォルトなしifmarginwidthマージンの幅を設定します。パーセント(%)またはピクセル(px)単位で指定できます(ifmarginwidth=500pxなど)。デフォルトなしifscrollingIFrameのスクロールバーを設定します。許容される値は、yes、no、autoです。autoifstyleIFrameのCSSスタイルを設定しますデフォルトなしifclassIFrameのCSSクラスを設定します。CSAPIをページレット・レスポンスに含めるかどうかを設定します(trueまたはfalse)。CSAPIの組込みはオプションですが、レスポンスに含まれるページレットは、ページレットがレンダリングされるページ上に存在するCSAPIライブラリに依存します。csapi=falseの場合は、CSAPIライブラリは親ページ(通常はHEADセクション)に含まれる必要があります。ページレット・リクエストの結果として403、404またはその他のエラー・コードが発生する場合は、ページレット・プロデューサは、ユーザーに表示するためにエラー・コードとエラー・ページ自体をブラウザに転送できます。onhttperrorパラメータは次の値を受け入れます。ページレット・プロデューサは失敗したページレットのかわりにHTMLコメントを生成します(失敗したページレットは単に表示されないだけです)。ページレット・エラーはサーバー・エラー・ページとともにインラインに表示されます。この場合、ページレットは通常、ページに表示されます。httpエラーはページ全体を消費します。このモードは、ページレット・プロデューサが親ページを制御する場合にのみ使用可能です。次のURLは、samplesライブラリのlinkspageletを指します。http://host:port/pagelets/inject/v2/pagelet/samples/linkspagelet?content-type=iframe&csapi=true&ifheight=123px&ifclass=myclassこのURLは、次のコードに似たマークアップになります。注意:IFrameソースは元の注入APIを指しますが、今回、content-typeパラメータはhtmlに設定されます。この機能により、ページレットの取得で手順が追加されます。csapiパラメータは、後続のコールでtrueに設定され、IFrameコンテンツを取得して必須のCSAPIコンテンツがIFrameに格納されるようにします(これが当てはまらない場合は、ページレット・コードはIFrameの外に格納されているCSAPIスクリプトにアクセスできないため、JavaScript解決エラーが返されます)。APIが使用できます。リモート・アプリケーションを使用してページレット・プロデューサからページレット・データを取得できます。(例65-1「すべてのページレット」および例65-2「ライブラリおよび名前別ページレット」を参照してください。リモート・アプリケーションを使用してページレット・プロデューサからリソース・データを取得できます。(例65-3「すべてのリソース」および例65-4「名前別リソース」を参照してください。http://host:port/pagelets/restservice/pageletproducer/です。IFrameへの自動サイズ変更の使用ページレット・プロデューサ・ページレット注入APIは、ページレット・コンテンツをカプセル化するIFrameのサイズを自動的に変更できます。IFrameがストレッチして中のコンテンツに合うようにサイズ変更が行われます。この機能を使用するには、次の例に示すように、ifwidthおよびifheightパラメータをautoに設定する必要があります。http://proxy:port/inject/v2/pagelet/samples/linkspagelet?content-type=iframe&csapi=true&ifheight=auto&ifwidth=auto&ifclass=myclassさらに、この機能はコンシューマ・ページと同じドメイン上にある外部ページに依存します。このページは、内部非表示IFrameとしてページレットIFrameに格納されます。このページでは、サイズ設定情報を収集して親コンシューマ・ページに渡します。このページは、コンシューマ・ページと同じディレクトリにデプロイする必要があります。次の例では、ロードの終了後に、ページレットIFrameのサイズが変更されます。初回ロード後に動的自動サイズ変更機能をユーザー対話型アクティビティに追加するには、マウスやキーボードのイベントについてイベント・リスナーをさらに追加するだけで済みます。Spacesでは、コンポーザを使用してページレットをページに追加できます。デフォルトでは、ページレットは「リソース・カタログ」の「マッシュアップ」フォルダに表示されます。ページレットをページに追加するには、「リソース・カタログ」のページレットに移動して選択します。Spacesユーザーズ・ガイド』のページへのリソース・カタログのコンポーネントの追加に関する項を参照してください。ページレットをページ内で構成するには、該当のページを編集モードで表示し、ページレットの編集ボタン(スパナ・アイコン)をクリックします。「コンポーネント・プロパティ」ダイアログの「ページレット・プロパティ」タブでは、ページレット・パラメータとIFrameオプションを定義できます。ページレット・プロデューサを使用したページレットの構築この項では、ページレット・プロデューサを使用してページレットを構築するための情報について説明します。アダプティブ・ページレットのスクリプティング・フレームワークの使用アダプティブ・ページレットのスクリプティング・フレームワークは、サービスをCSPページレットとプロキシされたページに提供するクライアント側JavaScriptライブラリです。この項では、スクリプティング・フレームワークを使用して動的機能をページレットに実装する方法について説明します。アダプティブ・ページレットのスクリプティング・フレームワークは、通常XMLとしてエンコードされる、構造化されたHTTPのクライアント側レスポンス・ハンドラとして使用できます。ページレットは、ページがロードされたり、ブラウザのフォーカスが変更された場合など特定のイベントが発生すると応答できます。ページレットは、ページをリフレッシュすることなく、その内部コンテンツをリロードできます。ブラウザレベルの変数が同一ページ上にない場合でも、その変数を格納してページレット間で共有できます。1つのページレットにユーザーが入力した値は、別のユーザーが取得できます。スクリプティング・フレームワークは仲介として機能するため、すべてのページレットで共通セッションに格納されているすべての値にアクセスできます。APIのドキュメントを参照してください。アダプティブ・ページレットの追加情報は、第65.3.1.5項「アダプティブ・ページレットの開発のヒント」を参照してください。構造化されたHTTPレスポンスの処理ごく一部のユーザー・インタフェースのみを変更する必要がある場合、一部のHTTPリクエストに応じて大量のHTMLを返すのは多くの場合費用がかかり非効率的な可能性があります。これは、より複雑なユーザー・インタフェースに特に当てはまります。このような場合は、レスポンスをXMLでエンコードできます。クライアント側レスポンス・ハンドラはXMLを解析し、そのレスポンスに基づいてユーザー・インタフェースを更新(またはその他の処理を実行)できます。構造化されたレスポンス設計パターンを使用して、HTTPリクエストの作成後にユーザー・インタフェースの小領域を再描画するか、単純なHTTP/URIタイプのWebサービスにページレットからアクセスします。新しいサイトの選択からRSSフィードにアクセスします。イベント通知の使用アダプティブ・ページレットのスクリプティング・フレームワークにより、ページレットでは、その他のページレットが生成したページレベルのイベントとカスタム・イベントの両方に応答できます。スクリプティング・フレームワーク内のメソッドregisterForWindowEventおよびregisterOnceForWindowEventは、ページレベルのイベントにアクセスできるページレットを指定します。完全なリストは、第65.3.1.2.1項「スクリプティング・フレームワークで使用するページレベルのイベント」を参照してください。これらのイベントの通知を登録するには、イベントの名前と、イベント発生時にコールする必要のあるメソッドの名前を渡します。ページレベルのイベントが発生すると、JavaScriptイベント・オブジェクトが引数としてイベント・ハンドラに渡されます。スクリプティング・フレームワークでは、ページレットはraiseEventおよびregisterForEventを使用してカスタム・イベントを発生させ、応答することができます。ブロードキャスト/リスナー・デザイン・パターンは、セッション・プリファレンスを指定して通知サービスを使用する重要な例です。ユーザーはアイテムを選択するか、「ブロードキャスト」ページレットで別のアクションを実行できます。これによって、その他の「リスナー」ページレットのコンテンツが再作成されます。次の例では、ブロードキャスト・ページレットによって、テキスト・ボックスに数字を入力できるフォームが表示されます。ブロードキャスト・ポートレット」の説明ユーザーがテキスト・ボックスに数値を入力すると、リスナー・ページレットの値が変更されます。最初のリスナー・ページレットには、ブロードキャスト・ページレットに入力した数値の平方根が表示されます。ポートレット」の説明2番目のリスナー・ページレットには、ブロードキャスト・ページレットに入力した数値の立方根が表示されます。次の手順では、ページレットがどのように機能するのかについてまとめています。ロード時に、各リスナー・ページレットは固有のインスタンス・メソッド(registerForEvent)をコールし、onBroadcastUpdateタイプのイベントを登録します。numberテキスト・ボックスに発生するonkeyupイベントごとに、ブロードキャスト・ページレットはセッション・プリファレンスをこのテキスト・ボックスに入力された値に設定し、その固有のインスタンス・メソッド(raiseEvent)をコールしてonBroadcastUpdateタイプのイベントを生成します。onBroadcastUpdateイベントが発生したり、ページが再ロードされた場合は、各リスナー・ページレットがブロードキャスト・ページレットによって設定されたセッション・プリファレンスを取得し、プリファレンスの値に基づいて表示する新しい値を計算します。スクリプティング・フレームワークで使用するためのページレベルのイベントスクリプティング・フレームワークでは、次のページレベルのイベントに自動的にアクセスできます。インプレース・リフレッシュの使用ページ上の他のコンテンツに影響を与えずに、ページレット・コンテンツをインプレースでリフレッシュするには、スクリプティング・フレームワークを使用してインプレース更新を実装します。ページレットの多くは時間に影響を受けるデータを表示します。場合によっては、ユーザーはページの残りの部分を変更またはリフレッシュすることなく、ページレット内のリンク間を移動できる必要があります。(refreshOnEvent)、または設定した間隔でリフレッシュするようにページレットをプログラムする(setRefreshInterval)ことでリフレッシュできます。スクリプティング・フレームワークにはまた、ページレットを開閉するためのメソッドも用意されています。次の単純な例では、リフレッシュ・ページレットに「ポートレットのリフレッシュ」ボタンが表示されます。このボタンをクリックすると、ページレットに表示される日時が更新されます。ポートレットのリフレッシュ」の説明インプレース更新は、ページレット・オブジェクト・インスタンスに対してrefresh()メソッドをコールすることにより、実行されます。リフレッシュ時には、新しいURLがページレット内に表示されるように設定することもできます。(タイトル・バーはリフレッシュ時に変更できません。セッション・プリファレンスの使用クライアント・ブラウザ内に設定を保存して共有するには、セッション・プリファレンスを使用します。ページレットはプリファレンスを使用して相互に通信できますが、プリファレンスにアクセスするには通常、データベースへのラウンドトリップが必要です。セッション・プリファレンスは、クライアント・ブラウザ内でユーザーのセッションの設定を保存および共有する手段を提供します。「マスター/ディテール」デザイン・パターンは、セッション・プリファレンスの最も基本的な使用方法です。このデザイン・パターンでは、2つのページレットの間で制御と表示が分割されます。「マスター」ページレットではデータをリスト形式で要約し、「ディテール」ページレットではユーザーの選択に応じてデータ・アイテムごとにディテールを表示することができます。次の例では、マスター・ページレットによって、テキスト・ボックスに色コードを入力できるフォームが表示されます。色コード」の説明ユーザーが色コードをテキスト・ボックスに入力すると、ディテール・ページレットに表示されている色が変更されます。色見本」の説明マスター・ページレットの「色の入力」テキスト・ボックスでonkeyupが発生するたびに、次の手順が実行されます。マスター・ページレットのテキスト・ボックスの現在値を使用してセッション・プリファレンスが設定されます。マスター・ページレットからディテール・ページレットの更新メソッドがコールされます。ディテール・ページレットにより、セッション・プリファレンスから色の値が取得されます。ディテール・ページレットの色見本領域が再描画され、新しい色の値が反映されます。注意:共有のセッション・プリファレンスは、ページレット・プロデューサ・コンソール内のページレットの「プリファレンス」ページから名前で指定する必要があります。指定しないと、プリファレンスはページレットに送信されません。アダプティブ・ページレットのスクリプティング・フレームワークには、ページレット間の関係を解除し、共通のイベント・インタフェースを使用して通信するための簡単な方法が用意されています。注意:次の例は極度に簡略化されたもので、マスター・ページレットからディテール・ページレットのJavaScriptメソッドが直接コールされます。マスター・ページレットで、ディテール・ページレットが同一ページ上に実際に存在することを確認するためのなんらかの処置を講じないかぎり、マスターからディテールに対してコールすると、エラーが発生する可能性があります。アダプティブ・ページレットの開発のヒント次のヒントは、アダプティブ・ページレットのスクリプティング・フレームワークを使用するほとんどのページレットに当てはまります。すべてのフォームと関数に一意の名前を使用します。一意の名前と値の形成にページレットのGUIDを使用し、ページ上の他のコードと名前の衝突が発生しないようにします。すべてのURLをプロキシします。コール元のページと異なるホスト/ポートを持つURLに対するリクエストを作成することはできません。JavaScriptを通じてリクエストされるURLはすべてプロキシする必要があります。詳細は、第65.3項「ページレット・プロデューサを使用したページレットの構築」を参照してください。アダプティブ・ページレットのスクリプティング・フレームワークを使用している場合は、サポートをチェックします。コンポーネントが存在するかどうかを判断するコードを組み込むことをお薦めします。理想的には、ページレットでいずれの状況も処理できる必要があります。簡単な解決方法は、スクリプティング・フレームワークがサポートされていない場合にユーザーに警告を行うIf文を備えたコードを優先することです。}</script>ウィンドウが閉じるときに、ページレットによって開かれたポップアップ・ウィンドウをすべて閉じます。onunloadイベントを使用してポップアップ・ウィンドウを閉じる場合に、スクリプティング・フレームワークを使用できます。必要なすべてのJavaScriptを前もってページに追加しておきます。innerHTMLプロパティを使用してページに追加されたスクリプト・ブロック/インクルードは、ブラウザで処理されない場合があります。スクリプト・タグにdefer(遅延)属性を追加します。RegExpを使用してレスポンスを解析し、スクリプトを見つけて評価します。HTTPとプロキシされたHTTPで同じ認証資格証明を使用する必要があります。JavaScriptで仲介(ブローカ)されたHTTPリクエストからは、ゲートウェイ処理された正常なHTTPリクエストの作成時と同じ認証トークン(cookie)が送信されます。ページレット・プロデューサの資格証明マッピングの使用ページレット・プロデューサでは、関連するリソースに定義された設定に基づいて、プロキシされた各アプリケーションの認証を管理します。ページレット・プロデューサは外部の資格証明ストアへのカスタム・マッピングを作成するAPIを提供しているため、カスタム資格証明ソースに対してユーザーを認証できます。IVendorCredentialMapperインタフェースでは、アプリケーションで特定のユーザーのセカンダリ認証に必要な、適切な資格証明のセットを取得できるオブジェクトに対するページレット・プロデューサのインタフェースを定義します。このインタフェースを実装するには、次の手順に従います。com.plumtree.runner.credentialmapper.IVendorCredentialMapperインタフェースを実装するJavaクラスを作成します。このインタフェースのgetCredentialメソッドとsetCredentialメソッドを資格証明ボールトにマップします。getCredentialsForDomainをコールしています。この手順はベンダー固有のものです。資格証明ストアは別のサーバーにあることが多いため、おそらくネットワーク・ホップが含まれます。マッパーには一意の名前を付け、必要に応じてローカライズします。APIのドキュメントを参照してください。クラスをJARにコンパイルします。ビルド・プロセスは、ページレット・プロデューサの配布キットに付属するcommon.jarにリンクする必要があります。カスタム・ボールトをページレット・プロデューサにロードします。Portal管理者ガイド』を参照してください。ページレット・プロデューサ・サーバー(異なるサーバー上にある場合はproxyとadminuiの両方)を再起動します。カスタムの資格証明ボールトが、リソース・エディタの「資格証明マッピング」ページの資格証明ソースのリストに表示されます。次の例は、説明を目的としているために簡略化されています。Portal管理者ガイド』のページレット・プロデューサのリソースとページレットの作成に関する項を参照してください。実行時のページレット機能の変更ページレット・プロデューサを使用すると、カスタムのインジェクタおよびパーサーを使用してページレットの機能を実行時に変更できます。Webインジェクタの作成Webインジェクタは、プロキシされているリソース・ページの指定の場所にコンテンツを挿入します。コンテンツには、HTML、CSS、JavaScriptおよびページレット宣言などのテキストを指定できます。ページから不要なコンテンツを削除するために空のインジェクタを使用することもできます。インジェクタをOpenSocialリソース用に作成することはできません。単純なHTMLコンテンツの注入についてはユース・ケースが限られていますが、ページレットのHTMLマークアップを直接変更するJavaScriptを注入することもできます。Webインジェクタを作成するには、使用するリソース下の「インジェクタ」セクションを選択し、ツールバーの「作成」アイコンをクリックします。URLパターンを「URLフィルタ」フィールドに入力することにより、インジェクタをリソースのサブセットに適用できます。インジェクタは、「URLフィルタ」ボックスに指定されたテキストで始まるリソース内のURLにのみ適用されます。このボックスが空または/のみ指定されている場合は、インジェクタはリソース全体に適用されます。インジェクタで特定の種類のコンテンツに制限するには、「MIMEフィルタ」ボックスにMIMEタイプのカンマ区切りリストを入力します。text/htmlではインジェクタはHTMLコンテンツに制限され、一方、text/cssではCSSコンテンツにのみ制限されます。リソースの出力のどこに注入するのかを定義します。「先頭」はコンテンツをページの最初に配置します。このオプションは、ページレット宣言の注入には使用しないでください。「最後」はページの最後にコンテンツを配置します。「次より前」/「次より後」/「置換」の各オプションは、表示されたフィールドに指定されている一意の文字列に関連するページに配置します。「大文字/小文字を区別しない」を選択することにより、文字列の大/小文字を区別しないようにできます。「囲みタグ」オプションは、一意の文字列を識別し、テキストと囲みタグの両方を次のページで指定されているコンテンツと置き換えます。「コンテンツ」ページで注入するコンテンツを入力します。このコンテンツには、HTML、CSS、JavaScriptおよびページレット宣言などのテキストを指定できます。次のコードはページ上部に注入できます。この例では、ハンドラ関数をページ・ロード・イベントに登録し、(ヘッダーやフッターを検索および非表示にすることにより)ハンドラを使用してページ・マークアップを変更します。カスタム・パーサーの作成カスタム・パーサーを使用すると、コンテンツを解析し、URLを検索するための組込みのロジックを補足したり変更できます。組込みのパーサーがURLの識別やURLとしてリライトしてはいけないセクションの識別に失敗した場合は、カスタム・パーサーを使用してデフォルトの動作を変更できます。JPDKポートレット・プロデューサまたはOpenSocialガジェット・プロデューサ用に作成することはできません。カスタム・パーサーを作成するには、使用するリソース下で「パーサー」セクションを選択し、ツールバーの「作成」をクリックします。パーサーの名前を入力します。「URLフィルタ」ボックスにURLパターンを入力することにより、パーサーをリソースのサブセットに適用できます。パーサーは、「URLフィルタ」ボックスに指定されたテキストで始まるリソース内のURLにのみ適用されます。ボックスが空または/のみ指定されている場合は、パーサーはリソース全体に適用されます。新しい解析ルールを追加するには、「作成」をクリックして新しい行を「フラグメントの場所」セクションに追加します。「正規表現」欄に、変換するURLフラグメントを識別するための正規表現を入力します。最初のグループ化表現(かっこ内)はフラグメントを識別し、残りの表現はそれを検索するためのコンテキストを提供します。「フラグメント・タイプ」から選択し、選択した場所を解析する方法を定義します。「静的URL」はサーバー上で変換されます。「動的URL」は、クライアント上でJavaScriptを使用して変換されます。「HTMLフラグメント」および「JavaScriptフラグメント」タイプは、XMLなどの別のコンテンツ・タイプに埋め込まれるコンテンツに使用します。「リライトなし」では、URLを検索しない場所を指定します。このオプションは、URLとして間違って識別されたマークアップのリライトを避けるために使用します。ナビゲータ・ツールバーの保存アイコンをクリックします。「一般」ページ」の説明たとえば、正規表現XMLFile=(.*?)"は、タグ内に次のように定義されたXMLファイルへのURLを識別します。src="/i/flashchart/anychart_5/swf/OracleAnyChart.swf?>XMLFile=http://apex.oracle.com/pls/apex/apex_util.flash?p=53557:1:74175370346201:FLOW_FLASH_CHART5_R45192463162785599619_en"。ページレットのデバッグページレット・プロデューサには、ページレットのデバッグ用に拡張ロギング・トレースが組み込まれています。ロギングは、ページレット・プロデューサ・コンソールの「設定」セクションで構成され、ここで、ページレット・プロデューサの各コンポーネントについて様々なレベルのロギングを定義できます。Portalのページレット・プロデューサの管理に関する項を参照してください。Loggingファシリティにメッセージのログを記録します。<domain>/servers/<server>/logs/<server>-diagnostic.logに格納されます。HTTPトレースページレット・プロデューサによって送受信されたHTTPリクエストとレスポンスを表示するには、「ログ設定」ページで「HTTP」コンポーネントを「最も詳細」に設定します。次のトレースの例は、テスト環境から取得されたものです。変換トレース変換の前後にページレット・プロデューサによってプロキシされたコンテンツを表示するには、「ロギング設定」ページでTransformコンポーネントを「最も詳細」に設定します。これらのトレースの目的は、変換の様々な段階でレスポンス・コンテンツをログに記録して、それらを比較したり、異なる変換の結果を表示できるようにすることです。次のトレース例は、テスト環境から取得したものです。JPDKポートレットを表示して任意のWebアプリケーションで使用できるようになります。Portalのページレット・プロデューサの管理に関する項を参照してください。次の第65.4.1項「ページレット・クロムの使用」で説明されているように、ページレット・プロデューサは、実行時にポートレット・マークアップを変更することもできます。ページレット・クロムの使用ページレット・クロムを使用すると、WSRPまたはJPDKポートレット・プロデューサからインポートされたポートレットを使用して作成されたページレットで実行時にマークアップを変更できます。ページレット・クロム・テンプレートは次の各方法を指定するHTMLファイルです。ポートレット・マークアップのスタイル・レンダリング方法ポートレット・タイトルの表示方法モード切替えオプションのレンダリング方法デフォルトのクロム・テンプレートには、ポートレット名と、異なるモードへの切替えが可能なドロップダウン・メニューが表示されます。ドロップダウン・メニューは、基礎となるポートレットによりサポートされるすべての標準モードが動的に移入されます。テンプレートは、次の予約済トークンを使用して主要なポートレット要素を特定していますが、これらは実行時にページレット・プロデューサによって置き換えられます。CONTENT$$ポートレット・コンテンツpt://imagesimageserverのURLを示すために使用されるタグ次に、非常に単純なページレット・クロム・テンプレートの例を示します。-->注意:ページレット・クロム・テンプレート・ファイルは、ページレット・プロデューサWebアプリケーションのclasspathでホストする必要があります。外部イメージ・サーバーを使用するようにページレット・プロデューサを構成した場合は、ensemblestatic.war/imageserver/yahooからイメージ・サーバーにファイルをコピーしてデフォルトのクロム・テンプレートが正しくレンダリングされるようにします。(RESTまたはJavaScript)に追加します。ページレット注入URLの詳細は、第65.2.2項「Webページへのページレットの追加」を参照してください。chrome)クロム・パラメータの値として、クロム・テンプレートが含まれているファイルの名前、またはすべてのクロムを抑止してポートレット・マークアップのみを返す特別な予約値「none」を指定できます。クロム・パラメータが省略された場合は、デフォルトのクロムがポートレット・マークアップとともに返されます。デフォルトのクロム・テンプレートでは、YUIメニュー・コントロールを使用してグラデーション・タイトル・バーとモード切替え用のDHTMLドロップダウン・メニューが表示されます。(ADFコンテンツが検出された場合は、デフォルトにより別のクロム・テンプレートが使用されます。このテンプレートはカスタム・テンプレートによってオーバーライドするか、chrome=chrometemplate.htmlを設定することによって標準のデフォルト・テンプレートでオーバーライドすることができます。OpenSocialガジェットの使用ページレット・プロデューサ・サーバーからアクセス可能なOpenSocialガジェットは、ページレットとして登録して、ポータルなどのWebアプリケーションで使用できます。Portalのページレット・プロデューサの管理に関する項を参照してください。APIのほとんどをサポートしています。API参照ドキュメントは、http://docs.opensocial.org/display/OSD/Javascript+API+Documentationで検索できます。Portalプロファイルと接続情報の取得およびユーザーのアクティビティ・ストリームへのアクセスが可能です。これらの機能の使用方法の詳細は、後続の項を参照してください。認証の構成ガジェットからユーザーレベルのデータ(プリファレンスやピープル・コネクション)をリクエストするには、エンド・ユーザーのIDを確立する必要があります。任意のOpenSocialガゼットがサーバーのユーザーレベルのデータにアクセスする必要がある場合は、ページレット・プロデューサ・コンソールで親のOpenSocialリソースのセキュリティ・ポリシーを構成する必要があります。ユーザーがOpenSocialガゼットに初めてアクセスすると、ログイン・ページが表示されます。初回ログイン後は、OpenSocialガゼットに対する後続のリクエストで確立されたユーザーIDが使用されます。Portal管理者ガイド』の「ページレットの管理」の章を参照してください。ユーザー・プリファレンスの格納OpenSocialガゼットでは、ユーザー・プリファレンスを使用してコンテナでデータを格納できます。ユーザー・プリファレンスは、特定のユーザーにスコープ設定されますが、オプションで、appIdにスコープ設定することもできます(ガゼットappIdはページレットのコンテキストIDです)。APIを使用する場合は、ユーザー・プリファレンスはユーザーとページレット・インスタンスにスコープ設定されます。APIを使用して、他のページレットと共有可能なプリファレンスをユーザー・レベルで管理することもできます。ページレットとして登録した場合は、ガゼットのユーザー・プリファレンスはページレット・プリファレンスとして処理されます。Portalでは、たとえば、隠されていないユーザー・プリファレンスを、「パーソナライズ」ボタンを使用してエンド・ユーザーが編集できます。ユーザー間で共有されたプリファレンスをシミュレートするために、ページレット・パラメータを介してユーザー・プリファレンスを渡すことができます。ページレット・プリファレンスが設定されている場合は、対応するページレット・パラメータが常にオーバーライドされます(つまり、パーソナライズはカスタマイズに優先します)。Portalの外では、ガジェットがサポートするページレットに、プリファレンス・エディタにアクセスし、ガジェットを最大/最小化するためのガジェット・タイトルとボタンを表示する簡単なクロムが提供されます。値noneをページレット注入APIのクロム・パラメータに渡すことにより、クロムを抑止できます。プリファレンス・エディタのUIでは、次の4種類のユーザー・プリファレンスをすべてサポートしています。APIを介して現在のユーザーのプロファイル・データとピープル・コネクションを問合せできます。Portalのページレット・プロデューサの管理に関する項の説明に従って、WebCenterDSデータ・ソースのターゲットをWC_Portletサーバーに設定する必要があります。APIをプロファイルや接続情報の更新に使用することはできません。サポートされているユーザー・プロファイルのフィールドを次の表に示します。ユーザー・プロファイルのフィールドOpenSocialフィールドタイプ説明aboutmestring個人に関する一般的な説明。<Address>個人の物理メーリング・アドレス。<AppData>AppDataのキーと値のコレクションで、プリファレンスに使用。値は有効な日付である必要があります。この個人の年齢がプライベートであるか、入力した年が使用不可能である場合は、年が0000に設定される場合があります。<string>個人の電子メール・アドレス。locationstring個人の物理的な住所。個人の実名のコンポーネントを分解して書式設定したバージョン。<Organization>個人の現在や過去の組織的な所属。<string>個人の電話番号。このタイプに正当な標準値に加え、このフィールドでは、モバイル、ファックスおよびページャなどの追加の値を定義します。<string>個人の写真のURL。GIF、JPEG、またはPNGイメージ・ファイル)を指し示します。このフィールドは、このユーザーが撮影した任意の写真を送信するのではなく、連絡先を記述する際の表示に適した特別な連絡先プロファイルの写真を送信するために使用してください。preferredUsernamestringユーザー名を要求するサイトでの、この個人の優先ユーザー名(jsmarrまたはdaveman692など)。statusstring個人のステータス、ヘッドラインまたは挨拶。thumbnailUrlstring文字列として指定された、個人の写真のサムネイルのURL。これは完全修飾URLである必要があります。APIを使用してユーザーのアクティビティ・ストリームを操作できます。次の操作がサポートされています。次の操作はサポートされていません。アクティビティの更新アクティビティの削除サポートされているアクティビティ・ストリームのフィールドを次の表に示します。アクティビティ・ストリームのフィールドOpenSocialフィールドタイプ説明appIdObject-Idアクティビティが関連付けられているアプリケーション。bodystringアクティビティのオプションの拡張バージョン。<i>、<a>、<span>のみを含めることもできますが、このフォーマットは無視できます。externalIdObject-Id投稿アプリケーションで生成されるオプションのID。idObject-Idアクティビティに永続的に関連付けられているID。postedTimestringエポック以降にアクティビティが実行された時間(ミリ秒)。同じソースの別のアクティビティとの関連で、該当のアクティビティの相対的な優先度を表す0から1までの数値。titlestringアクティビティのプライマリ・テキスト。<i>、<a>、<span>のみを含めることもできますが、このフォーマットは無視できます。userIdObject-Idアクティビティの定義対象であるユーザーのID。PubSubガジェット間イベント・モデルをサポートしています。ガジェットでは、JavaScriptで任意の数のチャネル(単純な文字列名で定義)を通じてイベントを公開できます。受信が終了すると、ガジェットは、再びJavaScriptで任意の数のチャネルを通じてイベントの受信をサブスクライブし、イベントに応じて適切な処理を実行できます。connName});サポートされているイベント処理APIの完全なJavaScript参照は、http://docs.opensocial.org/display/OSD/Javascript+API+Documentationを参照してください。http://docs.opensocial.org/display/OSD/Core-Gadget+-+PubSubも参照してください。次の例は説明のために簡略化されています。Portalのページレット・プロデューサの管理」を参照してください。ページレット・プロデューサ・コンソールを使用して新しいリソースを作成し、タイプに「OpenSocial」を選択します。必要に応じてURLおよびポリシーを定義します。新しいリソースを保存します。ページレット・プロデューサ・コンソールを使用して、新しいページレットを作成し、「ガジェットURL」フィールドにガジェットXMLスキーマの場所を入力します。ガジェット名およびガジェットに定義されたすべてのプリファレンスをインポートするには、「ガジェット・メタデータのインポート」ボタンをクリックします。いずれかのプリファレンスが編集可能な場合、ページレット・プロデューサは、インポートされたプリファレンスを使用してプリファレンス・エディタを作成します。生成されたプリファレンス・エディタを構成またはカスタマイズするには、「ページレット・パラメータ」ページに移動します。APIを使用してページレットおよびプリファレンス・エディタにアクセスするためのサンプル・コードを確認します。新しいページレットを保存します。次の例は説明のために簡略化されています。Portalのページレット・プロデューサの管理」を参照してください。ページレット・プロデューサ・コンソールを使用して新しいリソースを作成し、タイプに「OpenSocial」を選択します。必要に応じてURLおよびポリシーを定義します。新しいリソースを保存します。ガジェット・ファイルを作成またはアップロードします。注意:OpenSocialガジェットXMLファイルをホストする場合は、このファイルを匿名リソース(セキュリティ・ポリシーなし)の下に配置する必要があります。そこに配置しないと、ガジェットが正常に機能しません。匿名リソースの下の「ファイル」セクションを選択し、ツールバーの「作成」アイコンをクリックします。「一般」ページで、「名前」フィールドにファイルへの相対パスを入力します。先行スラッシュ("/")を使用しないでください。「gadgets/activities.xml」です。任意のパスと名前を使用できます。パスは、ページレット・プロデューサがファイルの処理に使用する「仮想」URLです。ナビゲータのファイル・コレクションの仮想ディレクトリ構造は、ファイルのパスに一致するように更新されます。ガジェット・ファイルをアップロードまたは作成するには、「コンテンツ」ページに進みます。ガジェット・ファイルをアップロードするには、ファイルへのパスを入力するか「参照」ボタンをクリックしてファイルに移動し、「アップロード」ボタンをクリックし、ページレット・プロデューサ・サーバーにファイルをアップロードします。ガジェット・ファイルを作成するには、「コンテンツ」ページでエディタを使用してコンテンツを入力したり編集します。ナビゲータ・ツールバーの保存アイコンをクリックします。ガジェットで必要なその他のファイル(JavaScript、イメージなど)を、リソースの「ファイル」セクションで作成またはアップロードします。ガジェット・コードのパスに一致するファイルのパスを定義します。ガジェットがjsというサブフォルダのJavaScriptファイルを使用する場合は、ファイル(gadgets/js/activities.jsなど)をアップロードする際に「名前」フィールドにディレクトリを指定します。ページレット・プロデューサ・コンソールを使用して、新しいページレットを作成し、「ガジェットURL」フィールドに(ステップ2で作成またはアップロードした)ガジェットのXMLスキーマの相対パスを入力します。ローカル・ファイルの場合は、これはファイル・オブジェクトの「名前」フィールドに定義されているパスと同じになります(gadgets/activities.xmlなど)。ガジェット名およびガジェットに定義されたすべてのプリファレンスをインポートするには、「ガジェット・メタデータのインポート」ボタンをクリックします。いずれかのプリファレンスが編集可能な場合、ページレット・プロデューサは、インポートされたプリファレンスを使用してプリファレンス・エディタを作成します。生成されたプリファレンス・エディタを構成またはカスタマイズするには、「ページレット・パラメータ」ページに移動します。APIを使用してページレットおよびプリファレンス・エディタにアクセスするためのサンプル・コードを確認します。新しいページレットを保存します。11gの各ページにコンテンツを統合する必要のある開発者を対象としています。WebCenterページレット・プロデューサに精通しており、Webテクノロジを十分に理解している必要があります。Sitesへのページレットの追加ページレットとその関連リソースが構成されたら、JavaScriptまたはRESTを使用してそれをWebページに挿入できます。詳細は、第65.2.2項「Webページへのページレットの追加」を参照してください。Sites内のページ・テンプレートに直接追加されるアプローチを採用します。JavaScriptライブラリ(必要な機能を親ページに追加します)と、ページレット・コンテンツをロードする実際のiFrameをロードするために、ページ・テンプレート・スクリプト・タグに次のように追加する必要があります。src="http://%PAGELET_PRD_HOST%/pagelets/inject/v2/pagelet/lib_name/pagelet_name?content-type=html&consumepage=true&ifheight=auto"></iframe>ここで、lib_nameおよびpagelet_nameはページレット・プロデューサに構成されたライブラリとページレットを示しています。パラメータの詳細は、第65.2.2.2項「RESTを使用したページレットへのアクセス」を参照してください。IFrameの自動サイズ変更の有効化ページレットをよりシームレスに消費側ページに統合するには、コンテンツを収められるように動的にサイズ変更することによって、ページレットiFrameがよりインライン・マークアップらしく動作するように設定できます。この機能を有効にするには、サイトとページレット・プロデューサの両方でさらに構成を加える必要があります。Sitesに同梱されているAviSportsサンプル・サイトを使用します。このサイトに新しいアセットを追加するには、サイト管理ページにログインして、次に示すように左側のナビゲーションで開発セクションを開きます。サイト管理ページ」の説明まず、次の設定を使用して新しいテンプレートを作成します。要素はHTMLページ全体を定義し、外部からコール可能です。キャッシュ済(デフォルト)保存SiteCatalogパラメータを%PAGENAME%として記録(デフォルト名を使用した場合、これは<site_name>/iFrameResizeRelayになります)新しいテンプレートには、次のようにアドレス可能です。http://%SITES_HOST%/cs/Satellite?pagename=%PAGENAME%このURLをメモしておきます。これは、ページレット用にインジェクタを構成するために使用します。次に、ページレット・プロデューサ管理コンソールを使用して新しいインジェクタをページレットに追加することによって、iFrameサイズ変更機能を適用します。ページレットを開き、「インジェクタ」を選択して、次の設定で新しいインジェクタを作成します。「テキスト」(デフォルト)を選択し、次のJavaScriptをテキスト・エリアにコピーします。次のJavaScript内のSITES_RESIZE_RELAY_PAGEを、前の手順で作成したテンプレートのURLに置き換えます。URLを使用して、サイトにあるページ・テンプレートにページレットを追加します。IFrameでは、IDパラメータにはページレットIFrameを識別する一意の番号を使用する必要があります(たとえば、「pt-pagelet-iframe-1」)。IFrame自動サイズ変更をサポートするために、次の問合せ文字列パラメータをページレットURLに追加する必要があります。consumepage=true&resizepage=http://%SITES_HOST%/cs/Satellite?pagename=%PAGENAME%&ifheight=auto"></iframe>注意:1ページに複数のページレットが存在する場合は、自動サイズ変更が適切に機能しないことがあります。これは、外部認証サーバーに対してフォーム自動ログインを必要とするページレットで発生することが知られています。この場合は自動サイズ変更用に構成できるページレットは1つだけであり、その他のページレットには静的なIFrameサイズ設定を使用する必要があります。Sitesのページでページレットが見栄えよく収まるようにするには、インジェクタを使用して元のCSSをオーバーライドするスタイルを追加することもできます。オーバーライドが適切に機能するためには、インジェクタによるスタイル定義がバックエンド・アプリケーションによって定義されたスタイルの後に置かれることが重要です。次の例では、置換CSSを<HEAD>セクションの末尾に注入することで、これを処理しています。ページレットのスタイルを変更するには、ページレット・プロデューサ管理コンソールを使用して新しいインジェクタをページレットに追加します。ページレットを開き、「インジェクタ」を選択して、次の設定で新しいインジェクタを作成します。UIのスタイル変更に使用されるインジェクタの作業例が含まれています。アイデンティティ伝播の使用ページレット・プロデューサの中心的な目的は、バックエンド・アプリケーションをプロキシ設定することです。ページレット・プロデューサはブラウザとバックエンド・アプリケーションの「仲介役」として動作するため、アイデンティティ伝播を次の2つの部分に分ける必要があります。Sitesに注入します。サイトにおけるIFrameとしてのページレット・プロデューサのコンテンツ」の説明コンテンツはIFrameとして注入されるため、ユーザーIDは、図65-16に示すようにサイト・コンテナとページレット・プロデューサ・コンテナの両方に設定されている必要があります。図65-16では、2つの認証スキーム間での共有が前提となっているユーザー・ディレクトリが省略されていることに注意してください。(OAM)を使用することです。図65-17では、2つの認証スキーム間での共有が前提となっているユーザー・ディレクトリが省略されていて、OAMアクセス・サーバーが除外されていることに注意してください。この構成は11g以前のバージョンではサポートされていないことにも注意してください。Manager統合の設定に関する章を参照してください。ページレット・プロデューサにより指定されたログイン・ページの使用OAMを設定する前に、サイトでページレット・プロデューサの統合をテストしておくと役立つ場合があります。OAMを使用しないと、ユーザーはページレット・プロデューサとサイトでそれぞれ別々に認証する必要があります(図65-16を参照)。この項では、ページレット・プロデューサでの個別認証の構成方法について説明します。SSOがページレット・プロデューサまたはサイトのどちらかに存在していない場合は、ページレット・プロデューサからログイン・フォームが表示されていることを確認して、図2に示す認証スキームをサポートする必要があります。ページレット・プロデューサでログイン・フォームが表示されるようにするには:ページレットへのアクセスを制限するJ2EEロールを特定するか、ページレット・プロデューサをホストしているJ2EEアプリケーション・サーバーに新しいロールを作成します。(WLS)の「匿名」J2EEロールを使用しています。ページレット・プロデューサ管理コンソールにログインし、サイト内で表面化する必要のあるページレットが含まれているリソースに移動して、ステップ1で選択したロールを追加します。ロールは、リソースの「ポリシー」ページで定義されます。ページレット・プロデューサからバックエンド・アプリケーションへのアイデンティティの伝播アイデンティティの確立方法は、次の各項で説明するようにアプリケーションのタイプによって異なります。WSRP/JPDKポートレットWSRPポートレットは、アイデンティティ伝播のためにWSSトークンを使用する必要があります。JPDKポートレット・プロデューサの登録に関する項と、第65.6.4項「WSRPポートレットをページレットとして消費」を参照してください。JPDKポートレットごとに、外部アプリケーションのログイン・フォームによって提供される情報に基づいて資格証明が渡されます。JPDKポートレット・プロデューサの登録に関する項を参照してください。ネイティブ認証(非SSO)により保護されたスタンドアロン・バックエンド・アプリケーションページレット・プロデューサには「自動ログイン」という機能があり、この機能によってページレット・プロデューサはバックエンド・アプリケーションにより確立された「ネイティブ」認証メカニズムと相互作用できます。自動ログインによるアイデンティティ伝播バックエンド・アプリケーションにはそれぞれ独自の認証手段があるため、必要な資格証明を収集するには、ページレット・プロデューサで独自のログイン・プロンプトを開始する必要があります。ページレット・プロデューサのリソースは、資格証明を基本的な認証ヘッダー、NTLMトークン、またはKerberosトークンとしてバックエンド・アプリケーションに送信し、さらにフォーム・ベースの認証を(通常はセッションCookieを介して)管理するように構成できます。Portal管理者ガイド』の自動ログインに関する項を参照してください。注意:「ユーザー・ボールト」を使用するように「ユーザー名」フィールドと「パスワード」フィールドを設定して、バックエンド・アプリケーションへのアクセスに必要なユーザー自身の一意の資格証明を入力するプロンプトが各ユーザーに表示されるようにします。SSOにより保護されたスタンドアロン・バックエンド・アプリケーションバックエンド・アプリケーションに適切な自動ログイン設定を決定することは、かなり大変な場合があります。この作業では、リクエスト・ヘッダーの参照、リダイレクトの確認、マークアップ(ときには動的に生成されたもの)の調査が必要になります。この調査および構成プロセスは、自動ログインが必要なアプリケーションが複数存在する場合は、気の滅入るような作業になりかねません。(OSSO)が使用可能な場合は、バックエンド・アプリケーションを保護するためにこれらのSSOソリューションの1つを使用することを強くお薦めします。バックエンド・アプリケーションがOAMで保護されると、次のサブセクションで説明するように、次の2つの方法でページレット・プロデューサが資格証明を提供できるようになります。(OHS)で実行するApacheモジュールです。ユーザーの妥当性が確立されると、OHSがプロキシ設定しているアプリケーション・サーバー上のWebアプリケーションにOAM_REMOTE_USERヘッダーが送信されます。アプリケーション・サーバー上ではOAMアイデンティティ・アサーション・プロバイダが実行して、JAASユーザー・プリンシパル名をOAM_REMOTE_USERヘッダー値に設定します。WebGateで保護されると、OAM_REMOTE_USERヘッダーを受信します。これによってプロキシ設定されたWebアプリケーションもすべて、このヘッダーを受信します。プロキシ設定されているWebアプリケーションがOAMアイデンティティ・アサーション・プロバイダを持つアプリケーション・サーバーにインストールされている場合、OAMアイデンティティ・アサータはページレット・プロデューサから渡されたOAM_REMOTE_USERヘッダー値を使用してユーザー・プリンシパルを設定します。この操作は、ページレット・プロデューサが、保護されたWebアプリケーションに対してWebGateのURLをプロキシ設定しようとしないかぎり、すべて実行されます。この項の以降の部分では、サイト統合のコンテキストでこれが実行できる方法を詳しく説明します。WebGateによって保護されていて、次のホストとポートがアプリケーションによって使用されることを前提としています。http://backendhost:8001/consoleバックエンド・アプリケーションへの直接URLを使用するようにページレット・プロデューサ・リソースを設定して、WebGateをバイパスします(つまり、http://backendhost:8001/console)。「一般プロパティ」ページ」の説明バックエンド・アプリケーションを直接コールするようにページレット・プロデューサを設定(WebGateをバイパス)することにより、ページレット・プロデューサで受信されるすべてのOAMセキュア・ヘッダーは、バックエンド・アプリケーションをホストしているアプリケーション・サーバー上のOAMアイデンティティ・アサーション・プロバイダに渡されます。バックエンド・アプリケーションをホストしているアプリケーション・サーバー上のOAMアイデンティティ・アサーション・プロバイダは、OAMヘッダーを受信すると、適切なユーザー・プリンシパルを設定します(図65-19を参照)。図65-19では、2つの認証スキーム間での共有が前提となっているユーザー・ディレクトリが省略されていることに注意してください。OAMアクセス・サーバーも除外されています。注意:WebGateをバイパスするようにページレット・プロデューサを設定するとシングル・サインオンが実行できますが、このソリューションはいつでも適用できるわけではありません。WebGateをホストしているOHSサーバーがバックエンド・アプリケーションのロード・バランシングも管理している場合は、WebGateをバイパスすることによってロード・バランシングもバイパスされます。アプリケーションへのトラフィックはすべて1つのサーバーにルーティングされます。この場合は、第65.6.3.4.2項「自動ログインとSSOによるアイデンティティ伝播の使用」で説明するように、自動ログイン用にページレット・プロデューサを構成することをお薦めします。WebGateのバイパス(第65.6.3.4.1項「OAMで保護されたバックエンド・アプリケーションへのアイデンティティの直接伝播の使用」で説明するとおり)が実行可能なオプションでない場合は、ページレット・プロデューサの自動ログインを使用して資格証明を提供することができます。SSOソリューション(OAMまたはOSSO)のログイン・ページによる自動ログインを使用すると、自動ログインを1回だけ設定すればよく、構成手順はすべての実装で同じであるという利点があります。11iの消費の自動ログインの構成に関する項で詳しく説明しています。form」フィールドを「ユーザー・ボールト」にリンクする必要があります。OAMで保護されたバックエンド・アプリケーションも、このドキュメントの自動ログインの構成に関する項でOSSOに関して説明した手順に従って設定できますが、次の例外があります。http://oam11g.mycompany.com:14100/oam/server/obrareq.cgi)です。自動ログインのフォーム識別URLを設定するときに、固定位置引数の後の問合せ文字列を必ず削除してください。URLは異なる値になりますが、静的な値である必要があります。「username」フィールドと「password」フィールドの値が異なる場合があります。form」フィールドを調べて、これらの値を決定します。次の生成された2つの値、「request_id」および「OAM_REQ」を含めます。共通自動ログイン構成この項では、一般的なバックエンドSSOシナリオに対するページレット・プロデューサでの自動ログイン設定のクイック参照を示します。Sitesまたは、WSRPコンシューマを含んでいないその他のすべてのWebコンテナで使用することができます。Manager、WLSTまたはページレット・プロデューサ管理コンソールを使用してページレット・プロデューサに登録できます。JPDKポートレット・プロデューサの登録に関する項を参照してください。登録が完了すると、WSRPプロデューサはページレット・プロデューサ管理コンソールにリソースとして表示され、WSRPエンドポイントに関連付けられたポートレットがリソースのページレット・コレクションにリストされます。注意:自動生成されたWSRPリソースとページレットは変更できません。変更可能なバージョンを作成するには、ページレット・プロデューサ管理コンソールで該当するリソースを選択して、「コピー」をクリックします。リソースのクローン・バージョンは編集可能であり、インジェクタなどの各種要素を追加してページレットの機能をカスタマイズできます。カスタム・インジェクタを使用してCSSクラスを注入し、ポートレット・マークアップがページレットをホストするサイトのルック・アンド・フィールのように表示されるように変更することもできます。ページレット・プロデューサに登録しているWSRPプロデューサで認証が必要な場合は、次の手順を実行する必要があります。Portal管理者ガイド』のWSセキュリティの構成に関する項の説明に従って、ページレット・プロデューサとWSRPプロデューサ間にWSセキュリティを構成します。Javaキーストア(JKS)がWSRPプロデューサとページレット・プロデューサ間に適切に構成されていることを確認する必要があります。Portalドメイン・キーストアの設定に関する項を参照してください。WSRPプロデューサの登録時に、「セキュリティ」セクションで適切な「トークン・プロファイル」を選択して、必要な構成情報を入力します。キーストアへのパスは絶対パスである必要があります。カスタムADFタスクフローをWSRPポートレットとして公開ADFタスクフローがホストされているページからそれを「クリッピング」することで、そのADFタスクフローをページレット・プロデューサで消費できますが、この方法はお薦めできません。ADFページによって生成されたマークアップの複雑さや、他のタスクフローまたはADFページ・パラメータへの潜在的な依存性を考慮すると、お薦めできる方法は、タスクフローに基づいてWSRPポートレットを作成してから、そのポートレットをページレット・プロデューサで消費することです。この方法の利点は、ADFタスクフローのパラメータがポートレットのパラメータになってページレット・パラメータにマップ可能になり、情報がサイト・ページからタスクフローに渡せるようになることです。ADFタスクフローからポートレットを作成するステップ別の手順は、第58.2.3項「タスクフローに基づくJSFポートレットの作成方法」を参照してください。ADFタスクフローがポートレットとして公開された後で、WLSドメインにある管理対象サーバー(たとえば、WebCenterドメイン上のWC_Portletサーバー)に新しいWSRPプロデューサをデプロイします。URLを情報ページ(http://%PRODUCER_HOST%/%APP_CONTEXT%/info)から取得して、それをメモしておきます。JPDKポートレット・プロデューサの登録に関する項を参照してください。Portal開発ガイド』のポートレット・タイプに関する項を参照してください)。リモート(プロキシ)ポートレットはWSRPポートレットであり、ページレット・プロデューサにWSRPプロデューサを登録することによって、そのままページレットとして公開できます。この項では、JSF、JSP、またはJavaポートレットなどのローカルWLPポートレットをサイトで使用するためにページレットとして公開する方法について説明します。Portalプロデューサに関する項を参照してください)。その結果、ページレット・プロデューサはネイティブWLPポートレットをその他のすべてのWSRPポートレットとして消費できます。PortalとのWSRPの相互運用に関する項で説明しています。注意:WLPポータルは、デフォルトではバージョン9.2以降、WSRPに対応しています。Remote」プロパティをtrueに設定する必要があります。WSRPプロデューサとWebCenterコンシューマ間のWSセキュリティの構成WebCenter共通コンシューマ(ページレット・プロデューサ)でWLPにより公開されたWSRPポートレットを消費するには、プロデューサとコンシューマの両方で構成する必要があります。Portalプロデューサ間のSAMLセキュリティに関する項に記載しています。これらの手順は包括的であり、次の調整が加えられています。プロデューサの構成の第5項で、WSRPコンシューマでのキーストア情報の構成の手順はJDeveloperで実行されます。この手順は、WebCenter共通コンシューマ(ページレット・プロデューサ)で完了する必要があります。Managerを使用して指定できます。Controlを使用したキーストアの構成に関する項を参照してください。注意:キーストア値を構成したら、JPS構成変更が選択されるようにするために、ページレット・プロデューサをホストしている管理対象サーバー(デフォルトではWC_Portlet)とWLS管理サーバーの両方を再起動する必要があります。プロデューサの構成の第4項の手順では、発行者名の重要性は強調されていません。ここに入力される名前は、コンシューマにより送信された名前と一致する必要があります。JPSの場合、送信されたデフォルトの発行者IDはwww.oracle.comです。JPDKポートレット・プロデューサの登録に関する項に説明する新しいWSRPプロデューサの作成と構成の標準的な手順に従ってください。次の設定が含まれていることを確認します。登録後、新しいページレット・プロデューサ・リソースが自動的に作成され、ページレットに移入されて、このWSRPエンドポイントに関連付けられたWLPポートレットを表現します。注意:ポートレットへのユーザー・アイデンティティ伝播を可能にするには、第65.6.3項「ページレット・プロデューサからバックエンド・アプリケーションへのアイデンティティの伝播」の説明に従って、WLPとページレット・プロデューサの両方を構成する必要があります。(テスト目的の場合、または認証なしでアクセス可能なポートレット・コンテンツの場合は、「セキュリティ」下の「デフォルト・ユーザー」に有効なユーザー名を指定できます。Sitesへのページレットの追加」の手順に従います。ページレット・コンテンツをロードするIFrameのsrc属性に使用するURLは、第65.2.2.2項「RESTを使用したページレットへのアクセス」の「ドキュメント」の項に記載されています。自動生成されたWSRPリソースとページレットは変更できません。WLPポートレットのマークアップの変更、たとえば、カスタムCSSスタイルの注入によりポートレットUIのルック・アンド・フィールを変更するためにページレット・プロデューサの機能を使用するには、新しいバージョンのリソースを作成する必要があります。WSRPプロデューサ用に作成されたリソースを選択し、「コピー」をクリックします。リソースのクローン・バージョンは変更可能であり、インジェクタなどの要素を追加してページレットの機能をカスタマイズできます。Sitesでユーザーのコラボレーションが容易に実行できるように、お知らせやドキュメントなどのツールが組み込まれています。ワークリストを介したリストに関する項を参照してください。(11.1.1.6およびそれ以降)に組み込まれているサービス・プロデューサ・コンポーネントを利用して、関連するWSRPポートレットをページレット・プロデューサ内で消費することです。次のポータル・ツールは、デフォルトではWSRPポートレットとして公開されています。アクティビティ・ストリームディスカッション・フォーラムメール投票マネージャドキュメント・マネージャリストタグ・クラウドブログワークリスト投票お知らせ注意:追加のツールを公開するには、サービス・プロデューサを新しいJSPXページに拡張し、そのページにタスクフローを追加します。Portalをインストールします。Content、ディスカッション・サーバー、ページレット・プロデューサを含むすべての依存コンポーネントもインストールされていて、構成済であることを確認します。Portalドメイン内のWC_Portlet管理対象サーバーに自動的にデプロイされます。11.1.1.6リリースで追加されたカスタムのサービス・プロデューサ・テンプレートを使用してWC_CustomServicesProducer管理対象サーバーを作成できます。WebCenterサービス・プロデューサ・コンポーネントと事前構成済のJDBCデータ・ソースが含まれています。WebCenterカスタム・サービス・プロデューサのテンプレートに関する項を参照してください。Portalサービスへのアクセスを可能にするには、次の2つの前提条件があります。Portalへのユーザー・アイデンティティ伝播を確立するこれらの前提条件については、以降のサブセクションで説明します。Portalコンポーネントで使用される共通のLDAPリポジトリを構成する必要があります。Serverに準拠していることを確認します。WLSでのセキュリティ構成時に、次の点を忘れないようにしてください。「オーセンティケータ」の優先度を「SUFFICIENT」に設定します。「制御フラグ」(カッコ内)と認証プロバイダの順序を次のように設定します。Portal用にSSOソリューションを構成することをお薦めします。OAMを使用している場合は、ユーザー・プリンシパル名がORACLE_REMOTE_USERヘッダーに渡されるように構成されていることを確認します。Server上のOAMアイデンティティ・アサーション・プロバイダでアクティブに設定されている必要があります。アイデンティティ・ストアでのGUID属性の構成GUID属性値を指定して、アイデンティティ・ストアで使用される値がLDAP認証プロバイダで構成された値と一致していることを確認します。この値は、jps-config.xmlファイル内で構成されます。使用しているLDAPオーセンティケータのGUIDをjps-config.xmlファイルに設定します。Serverでオーセンティケータの順序付けを行う前に(デフォルトのオーセンティケータおよびデフォルトのアイデンティティ・アサーション・プロバイダを使用)、ディスカッション・サーバーをSSO用に構成します。WLSTを使用してディスカッション・サーバー用にSSOを構成することもできます。Portal管理者ガイド』のSSO用のディスカッション・サーバーの構成に関する項を参照してください。Manager、WLSTまたはページレット・プロデューサ管理コンソールを使用して、サービス・プロデューサをページレット・プロデューサにWSRPプロデューサとして登録するだけです。次のスクリーンショットでは、ページレット・プロデューサ管理コンソールでのWSRPエンドポイントの登録例を示しています。JPDKポートレット・プロデューサの登録に関する項を参照してください。Token」に設定する必要があります。ページレット・プロデューサで設定されたサービス・プロデューサに対するリクエストに適切な実行タイムアウトを入力します(デフォルトは30秒)。登録が完了すると、サービス・プロデューサはページレット・プロデューサ管理コンソールにリソースとして表示され、プロデューサによって公開されたすべてのWSRPポートレットがリソースのページレット・コレクションにリストされます。Sitesのページに追加できます。SitesにあるサンプルのAviSportsサイトのページに埋め込まれたドキュメント・マネージャ・サービスを示します。注意:自動生成されたWSRPリソースとページレット(サービス・プロデューサに関連付けられているものなど)は変更できません。インジェクタを追加したり、その他の変更を加えるには、編集可能なバージョンを作成する必要があります。ページレット・プロデューサ管理コンソールでリソースを選択し、「コピー」をクリックします。リソースのクローン・バージョンは編集可能であり、インジェクタなどの各種要素を追加してページレットの機能をカスタマイズできます。InformationモジュールのUIをページレットとして消費する場合の詳細な手順を説明します。ここでは、自動ログイン、ナビゲーション抑止、スタイル変更、およびURLリライトについて説明します。11iインスタンスを使用して作成されました。この例では、次の共通用語と変数を使用しています。次の手順によって、ページレット・プロデューサ内の新しいEBSリソースに対して基本的なURLマッピングを設定します。次の設定を使用して新しいWebリソースを作成します。%EBS_HOST%UIで使用するURLと間違えられないようにするために、このURLはあまり具体的にしないようにしてください。オン「保存」をクリックします。自動ログインの構成この手順では、EBSシステムがOSSOによって保護されていて、ページレット・プロデューサがSSOに参加するのではなく(WebサイトがSSOで保護されていない場合の一般的なシナリオ)、フォームAutologinを提供するように構成されることを前提としています。EBS資格証明はすべてのユーザー用に共有することも(テスト用に有効)、ページレット・プロデューサの資格証明ボールトにユーザー別に格納することもできます。次の設定を使用して新しいWebリソースを作成します。オフ「保存」をクリックします。新規に作成されたOSSOリソースの下で、次のように「フォーム・ログイン」オプションを使用して「Autologin」を構成します。「保存」をクリックします。注意:ログイン・フォームのフィールド名は通常、バックエンド・リソースを保護しているログイン・ページのHTMLソースを調べることによって取得されます。Informationモジュールの順序ステータス・ページに関連付けます。新しいページレットを作成するには、作成したEBSリソースの下で「ページレット」セクションを選択して「作成」アイコンをクリックします。次の設定を使用して新しいページレットを作成します。オフ構成済のページレットをテストするには、「ドキュメント」ページで、そのページレットにRESTリンク経由でアクセスします。Order」ページが表示されます(ページレットでユーザー・ボールトを使用して資格証明を格納していて、そのページレットにはじめてアクセスする場合を除きます)。このページから「簡易検索」を使用て、ワイルドカード文字として'%'を使ってオーダーを検索できます。修正構成の作成ページレットの登録後に、プロキシ設定されたマークアップでのURLリライト関連の問題に対応するため、あるいは単にマークアップのスタイルを変更したり不必要な要素を非表示にするために、ページレットで追加機能(パーサー、インジェクタ、クリップなど)が必要になる場合があります。InformationのUIを公開するサンプルのページレットに適用された修正構成について説明します。ポップアップURLリライト用のプラガブル・パーサーの作成パーサーを使用して、コンテンツを解析したり、リライトする必要のあるURLを検索するために、ビルトイン・ロジックを補足または変更することができますビルトイン・パーサーがURLの識別に失敗した場合は、カスタム・パーサーを使用してこの失敗を修正することができます。UIの場合、この手順は「拡張検索」でのポップアップ処理の修正に必要です。EBSリソースの下で、次の設定を使用して新しいパーサーを作成します。(タイプ静的URL)図65-23にpopupRewriterの設定を示します。popupRewriter」の説明フレーム・バストを無効化するインジェクタの作成インジェクタによって、プロキシ設定されているリソース・ページの指定された場所にコンテンツが挿入されます。コンテンツには、HTML、CSS、JavaScript、およびページレット宣言も含めて、任意のテキストが使用できます。空のインジェクタを使用して、不必要なコンテンツをページから削除することもできます。次のインジェクタはEBSページレットに対して作成されたものですが、その目的は、ユーザーが職責を選択するよう求められる最初のページで発生するページの継承をEBSページレットが行わないようにすることです。EBSリソースの下で、次の設定を使用して新しいインジェクタを作成します。(テキスト)alt=''図65-24に、新しいインジェクタのパラメータ設定を示します。frameBustDisablerインジェクタiFrameを自動サイズ変更するインジェクタの作成よりシームレスに消費側ページに統合するには、コンテンツを収められるように動的にサイズ変更することによって、ページレットiFrameがよりインライン・コンテンツらしく動作するように構成できます。詳細は、このドキュメントのIFrameの自動サイズ変更の有効化に関する項を参照してください。JavaScriptの注入によるクリッピングの設定ページレットとして公開されたページ要素を抑止するオプションの1つとして、ページレット・プロデューサで使用可能なグラフィカル・クリッピングまたはRegExベースのクリッピングを使用してクリップを作成します。お薦めできる方法は、プロキシ設定されたページに注入されているカスタムJavaScriptを使用することです。この方法では、抑止する要素の識別ルールを動的に調節する必要性や、ページ上の複数要素の抑止ルールを調整する必要性に容易に適応できるため、より柔軟に対応できます。カスタムJavaScriptは、プロキシ設定されたリソースにインジェクタを使用して追加できます。11i標準ヘッダーとナビゲーション要素を抑止するには、次のインジェクタ定義を使用して、ページのロード時に不必要な要素を非表示にするJavaScriptのスニペットを挿入します。UIが複雑であるため使用しません。)EBSリソースの下で、次の設定を使用して新しいインジェクタを作成します。消費側のページでEBSページレットが見栄えよく収まるようにするには、インジェクタを使用して元のCSSをオーバーライドするスタイルを追加できます。Webサイトのスタイル変更の実装方法を示しています。注意:オーバーライドが適切に機能するためには、インジェクタによるスタイル定義がバックエンド・アプリケーションによって定義されたスタイルの後に置かれることが重要です。次の例では、コンテンツはページの<HEAD>セクションの終わりに注入されています。EBSリソースの下で、次の設定を使用して新しいインジェクタを作成します。#0b2a55;}</style>ページレットのテストこれでEBS11リソースには、図65-25に示すように、ページレット、カスタム・インジェクタ、およびカスタム・パーサーが含まれるようになりました。EBS11プロジェクト・リソース」の説明ページレットをテストするには、「ドキュメント」ページを参照し、次に示すURLを使用して、「example.com」をローカル・ホストIDに置き換えます。http://example.com:8889/pagelets/inject/v2/pagelet/ebs11/order_status?content-type=iframe&csapi=true&ifheight=300pxトラブルシューティングイメージが適切にレンダリングされない場合は、DHTMLリライトが有効になっていることを確認します。(DHTMLリライトの設定はリソースの「一般」ページにあります。Informationの画面を示しています。reserved.法律上の注意点ライブラリ。