連合ポータル ガイド

     前  次    新しいウィンドウで目次を開く       
ここから内容

リモート ポートレットのコンフィグレーション

この章では、Workshop for WebLogic 内でリモート ポートレットを変更およびコンフィグレーションする方法を説明します。

この章の内容は以下のとおりです。

 


リモート ポートレットへのルック アンド フィールの適用

ポートレットのルック アンド フィールにより、ポータル デスクトップ上でのポートレットの外観が決定します。リモート ポートレットのルック アンド フィールはプロデューサにはリンクされませんが、ユーザはコンシューマ上でポートレットの外観を任意に変更できます。この機能により、プロキシ ポートレットが存在するコンシューマ ポータルの外観を調和させることができます。

ポートレットにルック アンド フィールを適用する固有の手順については、別の場所で説明します。次のトピックの詳細については、「WebLogic のポータル開発ガイド」を参照してください。

 


リモート ポートレットのモードおよび状態の変更

この節では、リモート ポートレットのモードと状態を変更する方法を説明します。次のトピックが含まれます。

モードおよび状態とは

ポートレットのタイトル バーには最大 6 つのボタンを組み込めます。これらのボタンは、モードおよび状態という便利な機能を提供します。

図 5-1 に、すべてのモードと状態が有効になっているポートレットの例を示します。

図 5-1 モードと状態が有効のポートレット

モードと状態が有効のポートレット

モードには次のものがあります。

状態には次のものがあります。

モードと状態の詳細、動作方法、ポートレットへの追加方法、コンフィグレーション方法については、ポートレットに関するユーザーズ ガイドを参照してください。

リモート ポートレットのモードおよび状態

表 5-1 は、プロデューサにデプロイされているポートレットからコンシューマ アプリケーションのリモート プロキシへの、デフォルトでの状態の転送方法を示しています。リモート ポートレットで状態が編集可能かどうかも示されています。

表 5-1 リモート ポートレットの状態のデフォルトの動作
プロデューサ ポートレットの状態
プロキシ ポートレットのデフォルト状態
プロキシ ポートレットの状態を編集できるか
Delete = true
Delete = false
Delete = false
Delete = false
Maximize = true
Maximize = true
不可
Maximize = false
Maximize = false
不可
Minimize = true
Minimize = true
不可
Minimize = false
Minimize = false
不可
Float = true
Float = false
Float = false
Float = false

表 5-2 は、プロデューサにデプロイされているポートレットからコンシューマ アプリケーションのリモート プロキシへの、デフォルトでのモードの転送方法を示しています。リモート ポートレットでモードが編集可能かどうかも示されています。たとえば、プロデューサにデプロイされているポートレットでヘルプ モードが設定されている場合、リモート プロキシでもヘルプ モードが設定されます。ただし、リモート プロキシからヘルプ モードを削除することはできません。一方、プロデューサにデプロイされているポートレットでヘルプが設定されていない場合、リモート ポートレットにヘルプを任意に追加できます。

表 5-2 リモート ポートレットのモードのデフォルトの動作
プロデューサ ポートレットの状態
プロキシ ポートレットのデフォルト状態
プロキシ ポートレットの状態を編集できるか
Help = true
Help = true
不可
Help = false
Help = false
Edit = true
Edit = true
不可
Edit = false
Edit = false

注意 : ヘルプ モードと編集モードはどちらも、それらのアクションの適切なコンテンツを提供するファイルを参照します。たとえば、ヘルプ モードはヘルプ ファイルを参照します。プロキシ ポートレットでこれらのモードを動作させるには、これらのモードが参照するコンシューマ内のファイルの位置を、プロデューサ システム内のこれらのファイルの位置と相対的に同じにする必要があります。

リモート ポートレットのモードおよび状態の変更

ローカル ポートレットで使用できるモードと状態はすべてリモート プロキシで使用できます。ただし、リモート ポートレットを作成するときに、リモート ポートレットのすべてのモードと状態を編集 (追加または削除) することはできません。さらに、リモート ポートレットではフロート状態はデフォルトでは常にオフです。ただし、必要な場合は、コンシューマ アプリケーションのリモート ポートレットに任意に追加できます。

リモート ポートレットのデフォルトのモードおよび状態設定を変更する手順は、ローカル ポートレットの手順と同じです。

  1. [パッケージ・エクスプローラー] ビューでポートレット ファイルをダブルクリックし、ファイルをエディタで開きます。
  2. エディタで、図 5-2 に示されているポートレットのヘッダ部分をクリックします。これにより、図 5-3 に示されているポートレット タイトルバー プロパティがプロパティ ビューで開きます。
  3. 図 5-2 ポートレットのヘッダをクリック


    ポートレットのヘッダをクリック

  4. ポートレット タイトルバーの値をクリックし、それらを変更します。
  5. 図 5-3 ヘッダ プロパティ ビュー


    ヘッダ プロパティ ビュー

 


リモート ポートレットのエラーの処理

一部の状況下では、リモート ポートレットがプロデューサにアクセスできなくなる場合があります。この場合、コンシューマは例外を送出します。この節では、エラー ページを表示することでこの例外を処理する方法を説明します。

リモート ポートレットがプロデューサに接続できない場合に表示する、リモート ポートレットのエラー ページをコンフィグレーションする方法は 2 つあります。Workshop for WebLogic でページをコンフィグレーションする方法と、リモート ポートレットの XML ファイルでページをコンフィグレーションする方法です。

ヒント : エラー処理を詳細にコントロールする場合は、インターセプタの使用を検討します。インターセプタ フレームワークについては、「インターセプタ フレームワーク」で説明しています。

この節では、次のトピックについて説明します。

Workshop for WebLogic でのエラー ページのコンフィグレーション

Workshop for WebLogic を使用してリモート ポートレットのエラー ページをコンフィグレーションするには、次の手順に従います。

  1. Workshop for WebLogic で、リモート ポートレットのアウトライン ビューを表示します。これを行うには、[ウィンドウ|ビューの表示|その他] を選択します。[ビューの表示] ダイアログで、[基本|アウトライン] を選択します。
  2. アウトライン ビューで、図 5-4 に示されているプロキシ コンテンツをクリックします。
  3. 図 5-4 プロキシ コンテンツ ノードの選択


    プロキシ コンテンツ ノードの選択

  4. [プロパティー] タブをクリックし、プロキシ コンテンツのプロパティ ビューを表示します。このビューには、図 5-5 で示されているように、エラー URI プロパティのみ表示されます。
  5. 図 5-5 エラー ファイルの名前の入力


    エラー ファイルの名前の入力

  6. [エラー URI] フィールドに、ポートレットに関連付けるエラー ファイルの名前を入力します (または参照します)。エラー発生時にポートレットはこのページを表示します。
  7. [エラー URI] には、リモート ポートレットが位置するプロジェクトからの相対的なファイル パスを指定します。

.portlet ファイルでのエラー ページのコンフィグレーション

リモート ポートレットの .portlet ファイルでもエラー URI をコンフィグレーションできます。これを行うには、.portlet ファイルを開き、次の要素を追加します。ここで errorUri 属性の値は、表示するエラー ファイルの名前です。

 <netuix:proxyPortletContent errorUri="errorFileName.jsp"/>
errorURI 属性には、リモート ポートレットが位置するプロジェクトからの相対的なファイル パスを指定します。 

コード リスト 5-1 は、リモート ポートレットの XML ファイルの全行です。<netuix:proxyPortletContent> 要素の例は太字で強調されています。

コード リスト 5-1 リモート ポートレット XML ファイル
<?xml version="1.0" encoding="UTF-8"?>
<portal:root
xmlns:netuix="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"
xmlns:portal="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.bea.com/servers/netuix/xsd/portal/support/1.0.0 portal-support-1_0_0.xsd">

<netuix:proxyPortlet
cacheExpires="300" definitionLabel="portlet_5_1" description=""
doesUrlTemplateProcessing="true" forkRender="false"
forkable="false" groupId="Consumer" portletHandle="portlet_5"
producerHandle="consumerProducer" renderCacheable="true"
templatesStoredInSession="true" title="Remote Preferences">
<netuix:titlebar><netuix:maximize/><netuix:minimize/></netuix:titlebar>
        <netuix:proxyPortletContent errorUri="error.jsp"/>
<netuix:proxyPortletContent/>
</netuix:proxyPortlet>
</portal:root>

 


リモート ポートレットのプリファレンスの設定

ポートレットのプリファレンスは、ローカル ポートレットで機能する方法とほとんど同じ方法でリモート ポートレットでも機能します。リモート ポートレットは、ローカル ポートレットと同じく、ポートレット プリファレンスを利用することで、ユーザがポートレットのプレゼンテーションをカスタマイズできるようにします。

この節では、リモート ポートレットのポートレット プリファレンスの使用について説明します。次のトピックがあります。

注意 : この節は、読者がポートレット プリファレンスの概念について理解していること、ポートレット プリファレンスの作成方法、コンフィグレーション方法を理解していることを前提としています。ポートレット プリファレンスについて十分に理解していない場合は、『ポートレット開発ガイド』を参照してください。

ポートレット プリファレンスとは

ポートレット プリファレンスにより、ポートレットは定義済みの文字列値を変更、保存したり、定義済みの文字列値にアクセスしたりできます。ポートレットがこれらのプリファレンス値を取得すると、プリファレンス値は、通常、所定ユーザへのポートレットの表示方法に影響します。たとえば、株価ポートレットでは、ユーザは表示する株を指定できるようになります。ユーザは、ユーザ インタフェースを介して、ポートレットに表示する株を選択または入力します。その後、株のリストがサーバに渡され、その特定のユーザ用のデータベースに保存されます。ポートレット プリファレンスが変更可能で、プリファレンス編集用のインタフェースが提供されていれば、ポートレットのすべてのユーザがポートレットの独自のビューをコンフィグレーションできます。

プリファレンスを設定および取得するための、明確に定義された API があります。開発者は Workshop for WebLogic でプリファレンスを作成できます。また管理者は WebLogic Portal Administration Console を使用してプリファレンスを作成および編集できます。

ポートレット プリファレンスとリモート ポートレット

結合されたコンフィグレーションで、プロデューサはポートレット プリファレンスを保存および管理します。コンシューマでリモート ポートレットのプリファレンスを表示または変更する場合は、プロデューサのプリファレンスをフェッチし、変更内容をプロデューサの保存先に返す必要があります。

注意 : ポートレット プリファレンスは、WebLogic Portal の WSRP プロデューサの実装に含まれています。他の WSRP プロデューサの実装では、ポートレット プリファレンスがサポートされない場合があります。

プリファレンスの表示および変更

WebLogic Portal Administration Console を使用して、リモート ポートレットのポートレット プリファレンスを表示および変更できます。Administration Console は、WSRP のポートレット管理インタフェースを使用して、プロデューサからプリファレンスを取得し変更します。

注意 : Workshop for WebLogic を使用してリモート ポートレットのポートレット プリファレンスを作成または変更することはできません。

図 5-6 は、WebLogic Portal Administration Console の、ポートレット プリファレンスを作成するためのインタフェースです。プリファレンスを編集するための、同様のインタフェースもあります。たとえば、プリファレンスのデフォルト値を変更したり、そのデフォルト値を読み込み専用にしたりできます。

図 5-6 WebLogic Portal Administration Console でのポートレット プリファレンスの作成

WebLogic Portal Administration Console でのポートレット プリファレンスの作成

ヒント : Administration Console でポートレット プリファレンスに対して行う変更は、ライブラリ レベルの範囲かインスタンス レベルの範囲です。ライブラリでポートレット プリファレンスを変更すると、そのポートレットの以降のすべてのインスタンスに変更が反映されます。(ポータル フォルダ内の) インスタンスを変更すると、そのインスタンスにのみ変更は反映されます。したがって、複数のデスクトップで同じポートレットが使用されると、それぞれの使用に対応した、ポートレットの新しいインスタンスが生成されます。ポートレットのインスタンスを変更すると、そのインスタンスのみ変更されます。ユーザがポートレット プリファレンスを初めて更新すると、ポートレットの新しいインスタンスが作成され、更新されたプリファレンスがその新しいインスタンスに関連付けられます。WSRP 登録インタフェースが提供する方法により、新しく作成されたリモート ポートレットのポートレット インスタンスをプロデューサは追跡できます。詳細については、「登録によるポートレット インスタンスの管理」を参照してください。

プリファレンスのプログラム的操作

ポートレットは、javax.portlet.PortletPreferences オブジェクトを取得することで、プリファレンスをプログラム的に作成、取得、および変更できます。たとえば、ページ フロー ポートレットは、アクション メソッドの PortletBackingContext オブジェクトからこのオブジェクトのインスタンスを取得できます。コード リスト 5-2 に示されているページ フロー アクション メソッドは、FormData オブジェクトからユーザが設定したプリファレンスを取得し、そのプリファレンスを PortletPreferences オブジェクトに設定し、さらに store() メソッドを使用してそのプリファレンスをデータベースに格納します。

コード リスト 5-2 アクション メソッドのポートレット プリファレンスの設定
   /**
    * @jpf:action
    * @jpf:forward name="success" path="index.jsp"
    */
    protected Forward setColor(ColorForm form) {

       //-- コンテキストからプリファレンス オブジェクトを取得します。
       PortletBackingContext context =
       PortletBackingContext.getPortletBackingContext(getRequest());
       PortletPreferences prefs = context.getPreferences(getRequest());

//-- ユーザのプリファレンスを設定します。
       try {
prefs.setValue("color"、(String)form.getColor()[0]);
} catch (ReadOnlyException e) {
e.printStackTrace();
}

//-- ユーザのプリファレンスを格納します。
       try {
prefs.store();
} catch (ValidatorException io) {
io.printStackTrace();
} catch (IOException ioe) {
ioe.printStackTrace();
}

return new Forward("success");
    }


先にも述べましたが、リモート ポートレットの場合、プリファレンスはプロデューサ上でホストおよび管理されます。コンシューマにはプリファレンス情報は保存されません。

その他の使用上の注意事項と制限

この節では、リモート ポートレットのポートレット プリファレンスの使用に関する追加情報をリスト形式で提供します。

登録によるポートレット インスタンスの管理

先にも述べましたが、ユーザがポートレット プリファレンスを変更してポートレットをカスタマイズすると、ポートレットの新しいインスタンスが必ず作成されます。リモート ポートレットの場合、プロデューサで新しいインスタンスが作成され、そのインスタンスのハンドルがコンシューマに返されます。もちろん、ユーザの数が増加すると、固有のポートレット インスタンスの数がプロデューサ空間で増加してしまいます。コンシューマでプロデューサをこれ以上使用しないことを決定する場合、プロデューサには、そのことを認識し、その後必要なくなったポートレット インスタンスを削除する方法が必要です。ポートレット登録はこの目的を達成します。

WebLogic Portal のプロデューサは、複雑なプロデューサに対する登録をデフォルトでサポートしています。登録が有効の場合、コンシューマはプロデューサのポートレットにアクセスする前に、プロデューサに登録する必要があります。登録が終了すると、プロデューサは registrationHandle をコンシューマに返します。コンシューマは、コンシューマが登録解除されるまで、それ以降のすべての要求でこのハンドルを提供する必要があります。コンシューマがポートレットの登録を解除すると、プロデューサはそのコンシューマに対して作成されたすべてのポートレット インスタンスを削除します。

 


リモート ポートレットでのバッキング ファイルの使用

バッキング ファイルを使用すると、Java クラスを実装または拡張し、ポータル コントロールを表示する前の事前処理 (認証など) を可能にすることによって、ポートレットに対してプログラム的に機能を追加できます。バッキング ファイルをポートレットに追加するには、Workshop for WebLogic のプロパティ ビューでバッキング ファイル プロパティを使用します。

バッキング ファイルを使用すると、ポートレットのライフサイクルの特定のポイントでビジネス ロジックを実装できます。ローカル ポートレットでは、バッキング ファイル メソッドは次の順序で呼び出されます。

ただし、表 5-3 で示されているように、プロデューサはコンシューマ要求のタイプに応じた順序でバッキング ファイル メソッドを実行します。

表 5-3 プロデューサのバッキング ファイル メソッドの実行順序
コンシューマ要求
プロデューサのバッキング ファイル メソッドの呼び出し順序
getMarkup()
init() preRender()dispose()
performBlockingAction()
init()handlePostbackData()dispose()
handleEvents()
init()、イベント ハンドラ メソッド、dispose()

バッキング ファイルの詳細については、『ポートレット開発ガイド』を参照してください。リモート ポートレットでのバッキング ファイルの使用例は、「カスタム データの転送」と「リモート ポートレットのライフサイク」を参照してください。

 


リモート ポートレットのタイムアウト値の設定

リモート ポートレットからの要求に、プロデューサが即座に応答できない場合があります。この場合、リモート ポートレットが存在するポータル アプリケーションは、リモート ポートレットの応答を受信するまで応答不能になります。この節では、リモート ポートレットのタイムアウト値の設定方法を説明します。

この節では、次のトピックについて説明します。

概要

WebLogic Portal はリモート ポートレットのタイムアウト設定を 2 つ提供しています。

すべてのリモート ポートレットに対するデフォルトのタイムアウト制限、および個々のリモート ポートレットのタイムアウト制限を設定できます。個々のポートレットに対して設定されたタイムアウト値は、デフォルトよりも優先されます。

リモート ポートレットの接続タイムアウトは、コンシューマが継続的にプロデューサに接続している場合にのみ有効です。タイムアウトが有効となるのは、コンシューマに対するプロデューサの応答が遅い場合だけです。プロデューサが物理的に使用不可 (接続が切断された状態にある)、または新しい接続が確立された場合は、効果がありません。これらの場合は、オペレーティング システムの TCP タイムアウトが有効になります。

デフォルトのタイムアウト値の設定

Web アプリケーションのすべてのリモート ポートレットに対してデフォルト タイムアウト値を設定するには、コード リスト 5-3 に示されている要素の一方または両方を編集します。これらの要素は、各ポータル Web アプリケーションの WEB-INF ディレクトリにあるコンフィグレーション ファイル wsrp-producer-registry.xml 内にあります。

コード リスト 5-3 接続タイムアウト要素
<connection-establishment-timeout-msecs>-1</connection-establishment-timeout-msecs>
<connection-timeout-msecs>120000</connection-timeout-msecs>
注意 : タイムアウト値の単位はミリ秒です。

個々のリモート ポートレットのタイムアウト値の設定

個々のリモート ポートレットに対して接続確立タイムアウト、接続タイムアウトの一方または両方を設定するには、Workshop for WebLogic でポートレットのプロパティ ビューを開き、図 5-7 に示されているように、接続確立タイムアウト プロパティと接続タイムアウト プロパティに値を設定します。タイムアウト値の単位はミリ秒です。

図 5-7 タイムアウト プロパティの設定

タイムアウト プロパティの設定

 


WSRP マークアップおよびメッセージの変更

インターセプタ フレームワークはコンシューマ側のフレームワークです。インターセプタ フレームワークを使用すると、プロデューサに対して送受信される、マークアップおよびユーザ対話関係の WSRP メッセージをプログラム的にインターセプトおよび変更できます。このフレームワークはユーザが実装できる一連のインタフェースを公開しています。これらのインタフェースを使用して WSRP メッセージの内容を検証し、その内容に基づいて個別のアクションを実行できます。たとえば、プロデューサからコンシューマに登録エラーが返された場合に、インターセプタがそのエラーを検出して、ユーザに情報メッセージを表示したり、登録を完了するために必要な情報を自動的に返すことができます。

インターセプタの作成については、「インターセプタ フレームワーク」を参照してください。

 


リモート ポートレットのプロパティ

この節では、連合ポータルの開発者が使用するプロキシ ポートレットのプロパティとその他のポートレットのプロパティをリストし、それらについて説明します。この節では、次のトピックについて説明します。

プロキシ ポートレットのプロパティ

表 5-4 は、プロキシ ポートレットのプロパティのリストです。これらのプロパティは、リモート (プロキシ) ポートレットのプロパティ リストに表示されます。

表 5-4 プロキシ ポートレットのプロパティ
プロパティ
接続確立タイムアウト
省略可能。プロデューサとの最初の接続を確立するときに、ここで指定した時間 (ミリ秒) が経過すると該当ポートレットはタイムアウトになる。
接続タイムアウト
省略可能。プロデューサとの通信時に、ここで指定した時間 (ミリ秒) が経過すると該当ポートレットはタイムアウトになる。値を指定しない場合は、WEB-INF/wsrp-producer-registry.xml ファイルに格納されているデフォルト値が使用される。
グループ ID
読み込み専用 (プロデューサが割り当てる)。プロデューサが該当ポートレットをグループに関連付けると、プロデューサが割り当てた文字列がここに表示される。同じプロデューサから同じグループ ID を割り当てられたポートレットは、セッションを共有できる。
表示依存関係の呼び出し
読み込み専用 (プロデューサが割り当てる)。この boolean 型プロパティを使用すると、プロキシ ポートレットの事前表示ライフサイクルで、コンシューマがプロデューサから表示依存関係を取得できる。
プロデューサのポートレットに lafDependenciesUri 値がある場合、プロデューサはポートレットの記述の invokeRenderDependencies boolean を公開する。
属性が .portlet ファイルに含まれていない場合、デフォルト値は false。この値は読み込み専用であり、ポートレット ウィザードでプロキシ ポートレットが生成されるたびにプロデューサから初期化される。
ポートレット ハンドル
読み込み専用 (プロデューサが割り当てる)。このプロキシが参照する、ポートレットのプロデューサのユニークな識別子。
プロデューサ ハンドル
必須。プロデューサのユニークな識別子。
セッションに格納されたテンプレート
読み込み専用 (プロデューサが割り当てる)。プロデューサ側でプロデューサがユーザのセッションに URL テンプレートを格納するかどうかを示す。この boolean が意味を持つのは、URL テンプレート処理の boolean が true に設定されている場合のみ。
URL テンプレート処理
読み込み専用 (プロデューサが割り当てる)。プロデューサが URL テンプレートを使用して URL を作成するかどうかを示す。true の場合は、コンシューマが URL テンプレートを指定する。false の場合は、プロデューサが特殊な書き換えトークンを使用して URL を書き換える。
セッションに格納されたユーザ コンテキスト
読み込み専用 (プロデューサが割り当てる)。属性が .portlet ファイルに含まれていない場合、この boolean のデフォルト値は false
この値は、ポートレット ウィザードでプロキシ ポートレットが生成されるたびにプロデューサから初期化される。

その他のポートレットのプロパティ

その他のポートレットのプロパティのリストについては、『ポートレット開発ガイド』を参照してください。


  ページの先頭       前  次