IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  Lotus | WebSphere  >

WebSphere Application Server 6.1でJSR168ポートレット を使用する手順

(技術情報)

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません

ダウンロード


レベル: 中級

氏本 浩介, ソフトウェア事業 Lotusテクニカル・セールス, 日本アイ・ビー・エム株式会社

2007年 9月 04日

WebSphere Application Server (WAS) 6.1 より ポートレット標準規格である 「JSR168ポートレット」の実行がサポートされました。 是非ご参照ください。

ここではこの新機能を利用して、WAS 6.1 上でポートレットを動かす為の手順および注意点についてご紹介します。

JSR168とは、標準化団体 Java Community Process(JCP) において策定された、ポートレットAPIの新しい標準規格です。現在多くのポータル・アプリケーション・サーバーがサポートを始めており、また同様に、いくつかの統合開発環境(IDE)でその開発機能が提供されています。
例えば、IBM Rational Application Developer では、ヴィザードにより簡単にJSR168ポートレット・スケルトンを作成することができます。(図1)


図1 IBM Rational Application Developer の新規プロジェクト・ヴィザード

ポートレットをWAS上で使用するに際し、コーディング・レベルでの特別な考慮は不要です。任意のJSR168ポートレットが使用できます。もちろん、弊社製品 IBM Workplace Portlet Factory で生成したGUI ポートレットも基本的には動作します。但し、Struts ポートレット・フレームワークを使用して作成されたポートレットはWASではサポートされないのでご注意下さい。
また、IBM Rational Application Developer を使用してポートレットを作成した場合、web.xmlファイル中のstd-portlet.tldへのタグライブラリ参照(下図)を除去する必要があります。


図2 web.xml 中の std-portlet.tld への参照

さて、簡単に動作を試す為に、ここではサンプル・ポートレット Jsr168_test1 を用意しました。
以下、このサンプルをベースに説明していきますので、実際に動作を確認したい方は下記のリンクよりアプリケーション・モジュールをダウンロードしてください。

Jsr168_test1.war

このJsr168_test1ポートレットは、「View」「Edit」「Help」の3つの表示モードと簡単なアクションフォームを持つ非常にシンプルなポートレットアプリケーションです。 ちなみにこのアプリケーションを通常のWPサーバー上で実行すると、下記(図3)のようになります。


図3 サンプル・ポートレット (Viewモード)

このポートレットは、起動後、ログイン状態の有無、現在の認証情報、および PortletPreference(永続的設定ストア) や SessionBean へのストアデータの内容を表示します。
また、編集モードへ移行すると、PortletPreference へストアするデータの入力フォームが現れます。(図4)
ここ(編集モード)で設定した値は、ログアウト後も永続的に保持されている事はご存知の通りです。


図4 サンプル・ポートレット (Editモード)

動作を確認できたら、 (のちほど必要になるので)このポートレットの「ポートレット名」を確認しておきます。ポートレットデプロイメント記述子 portlet.xml を参照し、<portlet-name>で指定されている文字列を確認します。
下図の例では、"Jsr168_test1" がポートレット名になります。(大文字/小文字は区別しますので、ご注意ください。)


図5 ポートレットデプロイメント記述子上の「ポートレット名」

ではいよいよ、先ほどのポートレットをWASにデプロイしてみます。
まずWASの管理コンソールに下記のURLでアクセスします。(ポート番号は省略できませんのでご注意下さい。)


    		                    
http://<WAS61_Address>:9060/ibm/console


ログイン画面(図6)が表示されたら、管理者IDでログインします。


図6 WAS 6.1 管理コンソールへのログイン

ログイン後、画面左のナビゲーターから、「アプリケーション」→「エンタープライズ・アプリケーション」と選択し、アプリケーション一覧画面を表示します。
表示されたら、一覧上部の「インストール」ボタンを押下します。


図7 エンタープライズ・アプリケーション一覧

インストールするポートレットwarファイルへの "jsr168_test1.war" へのフルパスと、このポートレット用に適当な「コンテキストルート」を指定します。この場合「ローカル・ファイルシステム」とは、この管理コンソールを使用しているマシンを意味します。(サーバー側ではありません。)
コンテキストルート」は任意の文字列で結構ですが、他のアプリケーションに同じものがあってはいけません。必ずサーバー全体でユニークな値を指定します。ここでは、コンテキストルートに "wps" を指定します。

設定できたら、「次へ」を押下します。


図8 アプリケーション・インストールの準備

「ステップ1:インストール・オプションの選択」の画面はそのまま「次へ」を押下します。

次の「ステップ2:モジュールをサーバーにマップ」の画面では、インストールするアプリケーションにマップするサーバーを指定します。アプリケーション・モジュール名左横のチェックボックスにチェックをして、上のフィールドの「クラスターおよびサーバー」からWASサーバー(server1)と、存在していればWebサーバー(webserver1)を選択し、右の「適用」ボタンを押下します。そして表の「サーバー」の項目に選択したサーバー名が追加されたことを確認して、「次へ」を押下します。


図9 モジュールをサーバーにマップ

次の「ステップ3」の画面では、そのまま「終了」を押下します。


図10 要約

下記のようなメッセージが表示されたら、インストールは成功です。
「保管」リンクをクリックして、設定を保管します。


図11 正常終了メッセージ

ここで、再び「アプリケーション一覧」の画面に戻ります。

先ほど追加した "jsr168_test1_war" アプリケーションの「アプリケーション状況」は [停止済み(赤バツ印のアイコン)]になっています。"jsr168_test1_war" アプリケーションを選択して、「始動」ボタンを押下します、アイコンが [開始済み(緑矢印のアイコン)]に代わり、正常メッセージが表示されることを確認します。


図12 アプリケーションの始動

このポートレットをWebサーバー経由でアクセスする為に、スクリプト


 
<WAS61_Install_Dir>/AppServer/bin/GenPluginCfg.bat 
          

を実行してプラグイン構成ファイル


 		                    
<WAS61_Install_Dir>/AppServer/profiles/AppSrv01/config/cells/plugin-cfg.xml
          

を更新します。

実行後、プラグイン構成ファイルを開き、図13のように /wps/Jsr168_test1/* が追加されている事を確認します。


図13 更新されたプラグイン構成ファイル

WASサーバー上に複数のプラグイン構成ファイルが存在する場合がありますが、Webサーバーが実際に参照しているプラグイン構成ファイルは、Webサーバーの構成ファイルで確認します。
例えばIHS(IBM HTTP Server)の場合、<IHS_Install_Dir>/conf/httpd.confのWebSpherePluginConfig値で確認できます。

例)WebSpherePluginConfig "D:\IBM\AppServer\config\cells\plugin-cfg.xml"

プラグイン構成ファイルの更新が完了したら、設定を反映させる為に、Webサーバーを再起動します。

WAS上にデプロイされたポートレットは、URLで直接呼び出すことができます。その場合URLは下記のように指定します。


    		                    
http://<WAS61_Address>:port/<context-root>/<portlet-name>/<portletwindow>/<ver>/<mode>


ここで、各部の意味は以下のようになります。

<context-root>ポートレットのコンテキストルート
<portlet-name>ポートレット名
<portletwindow>ポートレット・ウィンドウ識別 (通常 "default":但し、任意の文字列が使用できます。)
<ver>ポートレットAPI のバージョン識別 (通常"1.0":現時点では、これ以外は不可です。)
<mode>表示モード識別

「コンテキストルート」および「ポートレット名」は、先ほどポートレットをWASにデプロイした際に指定した値です。例えば具体的には以下のようになります。


 
http://was61.ibm.com/wps/Jsr168_test1/default/ver=1.0/mode=view 
          

但し、Viewモードの場合のみ、下記のように省略することができます。
 
http://was61.ibm.com/wps/Jsr168_test1
          

他にも幾つかの指定可能なパラメータがあります。
詳しくは、WebSphere Application Server 6.1 InfoCenter をご覧下さい。

Viewモードを指定して呼び出した場合、以下のようになります。


図14 WAS上で実行したサンプル・ポートレット(Viewモード)

Editモードを指定した場合は以下の通りです。フィールドに値を入力し、「保存」ボタンを押下することにより、ポートレット設定値として PortletPreferences に保存することができます。


図15 WAS上で実行したサンプル・ポートレット(Editモード)

また、このように rparam ディレクティブを使用して、任意の引数を与えることもできます。


 		                    
http://was61.ibm.com/wps/Jsr168_test1/default/ver=1.0/mode=view/
rparam=<PARM1>=<VAL1>/rparam=<PARM2>=<VAL2>
          

ここで指定した引数は、サーブレットの場合と同様、下記の方法で取得することができます。


図16 ポートレット側でのURLパラメータの取得

サンプル・サーブレットには、既に上記のコードが含まれていますので、下図のようにURLに指定した引数が画面に表示されます。


図17 引数を取得したサンプル・ポートレット

永続的設定ストア(PortletPreferences)に保存したポートレット設定値の扱い

図18のように WAS上においても PortletPreferences への値のストアは可能ですが、ポートレットをWAS上で使用する場合は、この「ポートレット設定」の扱いに注意する必要があります。


図18 PortletPreferences に保存された情報

WAS上では一般に PortletPreferences にストアした各ポートレット・ウィンドウのポートレットの設定値は、DBMSではなく Cookie に保管されますので、完全な永続性はありません。
しかしWAS側の構成追加により、それらの設定を保管する場所を、セッション、.xml ファイル、またはDBMSのいずれかに変更することが可能です。その為には、Cookie を処理するメソッドをオーバーライドして、設定を他のデータストアに保管させるようにすることが必要です。具体的には、ポートレットを呼び出す前に、要求と応答をラップする新規エントリー・ポイントとして、フィルター、サーブレットまたは JavaServer Pages ファイルを新規に作成し実装することになります。
詳細は、WAS 6.1 InfoCenterの関連ページをご参照下さい。
以下に、HTTPヘッダにCookieとそて保持された、「ポートレット設定値」の例を示します。


図19 Cookieに保持されたポートレット設定値

ポートレットの集約

ポートレット集約フレームワークを使用して、複数のポートレットを1つのページに集約することができます。(図20)


図20 複数のポートレットを集約した例

ポートレットを1つのページに集約するには、「集約タグライブラリ」を使用してJSPファイルによる記述を行います。 下記にサンプルソースをご紹介します。具体的には、HTMLのTABLEタグ等で画面の分割配置を定義し、タイトルバーやコンテンツ部を「集約タグライブラリ」で挿入することになります。 サンプルでは、下記3つのポートレットを集約しています。

  • ポートレット"Jsr168_test1"
    http://lotus03.hakozaki.ibm.com/wps/Jsr168_test
  • ポートレット"StdWorldClock"
    http://lotus03.hakozaki.ibm.com/sample1/StdWorldClock
  • ポートレット"BANK_Sample"
    http://lotus03.hakozaki.ibm.com/sample2/BANK_Sample

なお、「集約タグライブラリ」は、JSP2.0から利用できるようになったEL式(EL: Expression Language)を使用するので、JSPファイル内で


    
<%@ page isELIgnored="false"%>


の宣言を忘れずに行います。 集約を記述したJSPファイルをWAS上に配置し、ブラウザからURL指定で呼び出すと、図20のような集約画面が表示されます。


図21 ポートレット集約のサンプルソース(JSPファイル)





上に戻る


ダウンロード

内容ファイル名サイズダウンロード形式
PDF形式jsr168_test1.war13.5KBHTTP
ダウンロード形式について


参考文献



著者について

日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotusテクニカル・セールス 氏本 浩介




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


IBM、Lotus、Lotus Domino、Lotus Notesは、International Business Machines Corporationの 米国およびその他の国における商標。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標です。

    日本IBMについて プライバシー お問い合わせ