第12章
この章では、exteNd Directorポートレットアプリケーションの概要について説明します。この章の節は次のとおりです。
exteNd Directorプロジェクト全般についての詳細は、exteNd Directorアプリケーションの開発 のプロジェクトを操作するに関する章を参照してください。
Java Portlet 1.0は、複数か最低でも1つのポートレット、Webアプリケーション展開記述子(web.xml)、およびポートレット展開記述子(portlet.xml)からなるWebアプリケーションとして、ポートレットアプリケーションを定義します。exteNd Directorによって、次のことを可能にするポートレット展開記述子が追加できます。
詳細については、ポートレットアプリケーション展開記述子を参照してください。
ポートレットアプリケーションは、ポータルアプリケーションと連動して動作する必要があります。 ポータルアプリケーションには、次のようにしてポートレットアプリケーションと通信するポータルサービスが組み込まれています。
ポータルサービスは、ポートレットがポータルページ上に生成したコンテンツを表示する。
注記: exteNd Directorは、 「パーソナル」ページ、「共有」ページ、および「コンテナ」ページという複数の種類のポータルページをサポートしています。 詳細については、のポータルページの操作に関する章を参照してください。
ポートレットアプリケーションは、ポータルアプリケーションに対して外部的にも内部的にも実行ができます。ポートレットアプリケーションでexteNd Directorポータルを操作する方法で説明されているように、exteNd Directorは両方の手法をサポートしています。
ポートレットアプリケーションは、Webアプリケーションアーカイブ(WARs)としてパッケージ化されます。 ポートレットアプリケーションに、Enterprise Java Beans (EJBs)などWARファイルにパッケージ化できない追加のリソースが必要な場合、ポートレットアプリケーションは、EARファイルに収められたそのリソースとともにパッケージ化されます。
ポートレットアプリケーション展開記述子で説明されているように、ポートレットアプリケーションはJ2EE Webアプリケーションと同じディレクトリ構造を使用しますが、WEB-INF内に展開記述子を追加する必要があります。
ポートレットクラスとリソースは、WEB-INF/classesの中に、またはWEB-INF/libの中のJARに存在するか、あるいはリソースセットクラスローダで定義された場所(ポートレットアプリケーションのresource.xmlの<libPath>要素で指定)に存在する必要があります。
exteNd Directorでは、ポートレットクラスと展開記述子をexteNd Directorポータルアプリケーションまたはポートレットアプリケーションのリソースセットにローカルに追加して、開発やテストサイクルの間に更新版のダイナミックロードが可能となります。
詳細については、ポートレットのダイナミックロードのサポートを参照してください。
ポートレットがexteNd Directorポータルアプリケーションのリソースセットに格納されていれば、exteNd Directorは、ポートレットのダイナミックロードをサポートします。 この機能を有効にすると、exteNd Directorは展開されたWARではなくディスクからポートレット変更をダイナミックにロードして、変更された内容を実行時に反映させます。 その結果、プロジェクト全体を再展開することなく修正をテストできるため、ダイナミックロードによって開発は効率的になります。
ダイナミックロードは、exteNd Directorプロジェクトウィザードを使用して新しいポータルアプリケーションEARかWARを作成した際に、デフォルトでExpress Portalプロジェクトで有効になります。
exteNd Directorページフロー設計ツールでページフロー(ポートレットの一種)を作成するか、exteNd Directorポートレットウィザードでポートレットを作成すると、ダイナミックロードはポートレットに対してシームレスに実装されます。 これらのツールは、ポートレットフラグメント展開記述子を自動的に作成し、ポータルアプリケーションのリソースセットの中の適切な場所に、関連するポートレットクラスとともに格納します。
リソースセットについての詳細は、exteNd Directorアプリケーションのリソースセットの使用に関する章を参照してください。
ポートレット記述子のダイナミックロードについての詳細は、exteNd Director ポートレットフラグメント展開記述子を参照してください。
ポートレットアプリケーションWARは、アプリケーションサーバ上のexteNd Directorポータルに対して外部的にも内部的にも実行ができます。
ポートレットアプリケーションは、次の場合にはポータルアプリケーションに対して外部的に動作すると考えられます。
ポートレットアプリケーションがスタンドアロンのアプリケーションWARとしてパッケージ化されていて、ポートレットアプリケーションWARが共有ライブラリ環境で稼動しているサーバに展開されている場合。
重要: 共有ライブラリ環境で、exteNd Directorポータルアプリケーションがサーバに1つづつ展開され、他のポータルアプリケーションがサーバに同時に展開されることがない場合。
詳細については、プロジェクトの共有ライブラリ設定の変更に関する節を参照してください。
ポートレットアプリケーションは、ポートレットとポートレット展開記述子がポータルWARの中に存在する場合(ポータルWARがEARにパッケージ化されているか独自の自己完結アプリケーションとしてパッケージ化されている)、ポータルに対して内部的に動作すると考えられます。
exteNd Directorでは、ポータルは同一のコンテキスト内のポートレットコンテナと直接通信するため、この手法は性能面でわずかながら効果的となります。
ポートレットアプリケーションを設定する際は、次の重要な事項を決定する必要があります。
決定 |
実装 |
---|---|
カスタムポートレットを作成して、exteNd Directorポータルアプリケーションで内部的に実行するか。 |
exteNd Director設計ツールを使用してポートレットを作成し、exteNd Directorポータルアプリケーションに内部的にパッケージ化します。
これらのツールを使用すると、開発サイクルの間、ポートレットクラスとポートレット展開記述子をダイナミックにロードできます。 ダイナミックロードを使用すると、アプリケーション全体を再展開する必要なしにポートレットの修正をテストできます。
|
exteNd Directorポータルアプリケーションで、既存のJava Portlet 1.0互換ポートレットWARを他のソースから実行するか。 |
既存のJava Portlet 1.0互換ポートレットアプリケーションは、exteNd Directorポータルアプリケーションに対して外部的に実行できます。 exteNd Directorポートレットアプリケーションウィザードを使用して、既存のポートレットWARがexteNd Directorポータルアプリケーションに対して外部的に実行できるように設定します。
|
ポートレットアプリケーションがスタンドアロンWARとして展開されたとき、外部的に実行するように設定するには、次のようにします。
プロジェクト設定の変更手順の説明に従って、全共有ライブラリ設定を使用するようにアプリケーションサーバを設定します。
exteNd Directorプロジェクトの作成の説明に従って、exteNd DirectorポータルアプリケーションEARプロジェクトまたはWARプロジェクトを作成します。
プロジェクト設定の変更手順の説明に従って、共有ライブラリを使用するようにexteNd Directorポータルアプリケーションプロジェクトを設定します。
ポートレットアプリケーションプロジェクトの設定の説明に従って、1つまたは複数のポートレットアプリケーションがexteNd Directorポータルで動作するように設定します。
ポートレットアプリケーションをEARにパッケージ化する場合は、プロジェクトの追加手順に従ってください。
注記: Java Portlet 1.0互換ポートレットアプリケーションは、スタンドアロンWARとして展開することもできます。
ポートレットアプリケーションがポータルWAR内に展開されたとき、外部的に実行するように設定するには、次のようにします。
exteNd Directorプロジェクトの作成の説明に従って、exteNd DirectorポータルアプリケーションEARプロジェクトを作成します。
exteNd Director開発環境でポータルアプリケーションEARプロジェクトを開いたまま、[ファイル]>[新規]>[プロジェクト]を選択します。
[ポートレットアプリケーション]を選択して、[OK]をクリックします。
[現在のプロジェクトに追加する]ダイアログボックスが表示され、現在開いているEARプロジェクトにポートレットアプリケーションを追加するかどうかを確認します。
ポートレットアプリケーションWARは、exteNd Directorポータルで動作するように設定され、EARプロジェクトに追加されます。
exteNd Directorポータルアプリケーション内でポートレットアプリケーションをローカルに実行するには、次のようにします。
exteNd Directorプロジェクトの作成の説明に従って、exteNd Directorプロジェクトウィザードを使用してexteNd DirectorWARプロジェクトまたはEARプロジェクトを作成します。
注記: ウィザードによって、ポータル、ポータルランタイム生成物、およびリソースセットが作成されます。 ポートレットアプリケーション展開記述子で説明されているように、ポートレットランタイム生成物には、ポートレット展開記述子のportlet.xmlとnovell-portlet.xmlが含まれます。
exteNd DirectorポータルアプリケーションWARまたはEARを開いた状態で、次のexteNd Director設計ツールのいずれかを使用してJava Portlet 1.0互換ポートレットを作成します。
注記: これらのツールはいずれも、各ポートレット用のポートレットフラグメント展開記述子とともに、新しいポートレットをポータルアプリケーションのリソースセットに自動的に追加します。 各フラグメント記述子は、関連するポートレット用のJava Portlet 1.0およびexteNd Director 設定情報の両方を保存します。portlet.xmlとnovell-portlet.xmlの更新は不要です。
exteNd Directorは、ポートレットアプリケーションに対する次の展開記述子をサポートしています。
展開記述子 |
記述子ファイルのファイル名 |
コメント |
---|---|---|
Webアプリケーション展開記述子 |
web.xml |
すべてのWARに必要
|
Java Portlet 1,0で定義された標準ポートレット展開記述子 |
portlet.xml |
すべてのポートレットアプリケーションWARに必要
|
標準ポートレット展開記述子へのexteNd Director拡張機能 |
novell-portlet.xml |
オプション
|
exteNd Directorポートレットフラグメント展開記述子 |
ポートレット名.xml |
オプション
|
注記: exteNd Directorプロジェクトウィザードを使用してexteNd DirectorWARプロジェクトやEARプロジェクトを作成する場合、protlet.xmlとnovell-portlet.xmlは自動的にプロジェクトに含まれます。 ポートレットの開発に関する章を参照してください。
次の表は、ポートレットアプリケーションにどのポートレット展開記述子を組み込むかを決定するためのガイドラインです。
これまでに説明したように、Webアプリケーション展開記述子web.xmlはWARの標準設定を含み、アプリケーションWARの/WEB-INFディレクトリに格納されています。 この記述子は、サーブレット、JSPページ、HTMLページ、Javaクラス、および静的ドキュメントを含むすべての標準Webリソースを指定します。
web.xmlは拡張できないため、ポートレットリソースは、標準ポートレット展開記述子で説明されているように、別のファイルで指定する必要があります。 ただし、次のポートレットアプリケーションプロパティはweb.xml展開記述子で設定できます。
web.xmlで指定するポートレットアプリケーションプロパティ |
タグ |
---|---|
ポートレットアプリケーション記述子 |
<description> |
ポートレットアプリケーション名 |
<display> |
ポートレットアプリケーションセキュリティ役割マッピング |
<security-role> |
標準ポートレット展開記述子portlet.xmlは、すべてのポートレットアプリケーションの/WEB-INFディレクトリの中に格納されていることが必要です。 この記述子は、アプリケーション内のすべてのポートレットに対する設定および展開情報を指定します。
標準ポートレット展開記述子についての詳細は、Java Portlet 1.0の仕様を参照してください。 次の場所でスキーマを見ることもできます。
extend5 install directory\Common\Resources\SchemaCatalog\portlet-app_1_0.xsd
exteNd Directorポータルでポートレットアプリケーションを実行する場合は、オプションでexteNd Directorポートレット展開記述子novell-portlet.xmlをポートレットアプリケーションに含めることができます。 novell-portlet.xmlの仕組みで説明されているように、このオプション記述子は、exteNd Directorポータルによって解釈される設定や追加初期設定を提供し、portlet.xmlを拡張します。
novell-portlet.xmlには、次の種類の情報が含まれています。
注記: ポートレット設定に関する章で説明されているように、設定は設計時にnovell-portlet.xmlに指定できますが、ポートレット定義の登録とポートレット登録のページへの割り当てが行われた展開後でも、管理者による修正ができます。
novell-portlet.xmlは、portlet.xmlとweb.xmlとともに、ポートレットアプリケーションの/WEB-INFディレクトリの中に格納します。
portlet.xmlでは、すべてのポートレット定義の記述子をアプリケーションに含める必要がありますが、novell-portlet.xmlではそのような制約はありません。 追加設定が必要なポートレット定義のみを含めますが、portlet.xmlで定義されていないポートレットを含めることはできません。
novell-portlet.xmlスキーマを高レベルで図示します。
次の場所でnovell-portlet.xmlスキーマが参照できます。
extend5 install directory\Common\Resources\SchemaCatalog\novell-portlet.xsd
次の表は、アプリケーションの任意のポートレットに対するnovell-portlet.xmlで定義できる要素を示します。
要素 |
説明 |
例 |
---|---|---|
enable-title-bar |
ポートレットを表示する際にタイトルバーを付加するかしないかを指定する設定。次のように指定します。 注記: supported-optionsで定義したオプションをポートレットウィンドウに表示させたい場合は、この設定を有効化する必要があります。 |
<portlet name="TextMessagePortlet"> ... <enable-title-bar>1</enable-title-bar> ... |
supported-options |
ポータルで定義したオプションのどれをポートレットでサポートするかを指定する設定。 ポータルによって定義されたオプションはすべて、ポータルアプリケーションリソースセットのportal-optionディレクトリに記述されています。 注記: ポートレットウィンドウにオプションを表示させたい場合は、enable-title-barを設定する必要があります。
|
<portlet name="TextMessagePortlet"> ... <supported-option>edit</supported-option> <supported-option>help</supported-option> ... |
style |
ポートレットのスタイルを指定する設定オプション。 1つポートレットにつき1つのスタイル要素が指定できますが、デバイス固有のXSLスタイルシートを指す複数のユーザエージェントをそれぞれのスタイルに組み込む必要があります。 |
<portlet name="BookmarkPortlet"> ... <style> <name>BookmarkPortletDefault</name> <display-name>Default Bookmark Portlet Style</display-name> <user-agent> <device-name>Generic_HTML</device-name> <file-name>$RESOURCE_SET$/portal-style/BookmarkPortlet.xsl</file-name> </user-agent> </style> ... |
preview-image |
ポートレットのプレビュー用のイメージを提供する設定オプション |
<preview-image>$RESOURCE_URL$/images/PortletPreview.gif</preview-image> |
portlet-preferences |
portlet.xmlに定義された標準初期設定に対して、設定に関する選択の拡張を可能にする初期設定 |
<portlet name="TextMessagePortlet"> ... <\x83 |\x81 [\x83 g\x83 \x8c \x83 b\x83 g\x8f \x89 \x8a \xfa \x90 \xdd \x92 \xe8 > <preference name="min-timeout"> <data-type>Integer</data-type> <required>true</required> <multi-valued>false</multi-valued> </preference> <preference name="max-timeout"> <data-type>Integer</data-type> <required>true</required> <multi-valued>false</multi-valued> </preference> <preference name="scrollbar"> <data-type>Boolean</data-type> </preference> </portlet-preferences> ... |
synchronous |
ポートレットを同期で実行するか非同期で実行するかを指定する初期設定 デフォルトは非同期(マルチスレッド)実行です。
|
<portlet name="TextMessagePortlet"> ... <synchronous>1</synchronous> ... |
requires-authentication |
認証されたユーザが、ポートレットの実行を要求されるかされないかを指定する設定 |
<portlet name="TextMessagePortlet"> ... <requires-authentication>0</requires-authentication> ... |
auto-register |
ポートレットを展開時に自動的に登録するかしないかを示す初期設定 以下のポートレットに対しては、auto-registerの有効化をお勧めします。 たとえば、未設定のバックエンドメールサーバと通信する場合など、ポートレットが実行時にどのように使用されるか分からないときには、auto-registerの無効をお勧めします。 注記: 自動的に登録されたポートレットを削除すると、ポータルはサーバの再起動時にそのポートレットを登録します。 |
<portlet name="TextMessagePortlet"> ... <auto-register enabled="true"> <registration-id>AdminTextMessagePortlet</registration-id> <category>General Portlets</category> <restrict-list>true</restrict-list> <restrict-execute>true</restrict-execute> </auto-register> ... 注記: この例では、AdminTextMessagePortletと呼ばれるTextMessagePortletのインスタンスが、展開時に自動的に登録されGeneral Portletsカテゴリに追加されます。 リスト権限と実行権限は、ポータル管理者のみに制限されます。 |
max-timeout |
ポートレットがコンテンツを返すのをポータルが最大何ミリ秒待つかを指定する設定 ポートレットコンテナはこの値を使用することも無視することもできます。 |
<portlet name="TextMessagePortlet"> ... <max-timeout>-1</max-timeout> ... |
hidden-from-user |
ポータル管理者でない認証ユーザに対してポートレットを選択リスト内に表示するかしないかを指定する設定 |
<portlet name="TextMessagePortlet"> ... <hidden-from-user>true</hidden-from-user> ... |
exteNd Directorポートレットフラグメント展開記述子は、開発サイクルでポートレットのダイナミックロードを可能にします。 ポートレットのダイナミックロードのサポートに説明されているように、ダイナミックロードによって、アプリケーション全体を再展開することなく、ポートレットを更新したり、変更をテストしたりすることが可能になります。
重要: ポートレットフラグメント展開記述子は、ポートレットアプリケーションがリソースセットを含み、exteNd Directorポータルで動作する場合にのみ使用できます。
ポートレットフラグメント展開記述子は、ポートレットアプリケーション内のリソースセットのportal-portletディレクトリに格納されるXML記述子です。 記述子はそれぞれ、単一のポートレットの初期設定と設定を記述しています。ダイナミックにロードする各ポートレットに対して、1つのポートレット展開記述子を組み込むことが必要です。 ポートレットフラグメント記述子ファイルの名前は、次の規則に従って、記述するポートレットクラスの名前と一致させる必要があります。
name of portlet class.xml
たとえば、ポートレットクラスTextMessagePortletに対するポートレットフラグメント展開記述子は、TextMessagePortlet.xmlと命名します。
ポートレットフラグメント展開記述子は、特定のポートレットに対するportlet.xmlとnovell-portlet.xmlを組み合わせたものを意味します。 この記述子は、次のような関連するポートレットの設定情報を1箇所に集約します。
ポートレットフラグメント展開記述子スキーマの構造を詳しく見るには、以下を参照してください。
extend5 install directory\Common\Resources\SchemaCatalog\portlet-fragment.xsd
exteNd Directorページフローモデラーとポートレットウィザードは、作成するページやポートレットそれぞれに対するポートレットフラグメント展開記述子を自動的に生成します。 記述子ファイルはリソースセットの中の適切な場所に自動的に格納され、ダイナミックロードが可能になります。
詳細については、 カスタムポートレットの開発に関する章を参照してください。
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...