© Copyright International Business Machines Corporation 2006. All rights reserved.
Struts ポートレット・プロジェクトを開発する場合、Struts テンプレート・タグが Struts ポートレット・ツールによって適切にサポートされないことに注意してください。
- Struts テンプレート・タグをパレットから Web ページへ追加する場合、ツールでは、以下のように、ユーザーに対して Struts Web taglib ディレクティブが不適切に生成されます。
<%@taglib uri="http://jakarta.apache.org/struts/tags-template" prefix="template"%>
正しい Struts ポートレット・テンプレート taglib ディレクティブは、以下のとおりです。
<%@taglib uri="http://struts.apache.org/tags-template" prefix="template"%>
当該ページに対する taglib ディレクティブを修正しても、続けてテンプレート・タグを追加した場合、不適切な taglib ディレクティブが追加され続けるため、問題は解決されません。- Struts テンプレート・タグは Page Designer で視覚化されません。
Struts ポートレット・ツールでは、現在のところ、Struts タイル・ポートレット開発は サポートされていませんが、Struts タイル・ポートレットのサンプル (IBM および JSR168) は提供されているので、 ワークスペースにそれらのサンプルをインポートして、ポートレット・アプリケーションでタイルを使用するポートレットを構成することができます。
注: Struts ポートレット・プロジェクト内でタイルを開発すると、 動的テンプレート・サポート (Struts Tiles) プロジェクト・ファセットが追加される場合があります。これにより、ポートレットのデプロイメントに問題が発生します。詳細については、既知の問題と回避方法を参照してください。
Struts ポートレット・サンプル (IBM または JSR168) をワークスペースにインポートすると、インポートした Struts ポートレット・サンプルでターゲット・ランタイム未定義エラーが発生することがあります。ワークベンチ構成およびマシンにインストールされているサーバーによっては、 プロジェクトで、エラー「ターゲット・ランタイム WebSphere® Portal V6.0 が定義されていません」が発生する場合があります。これは WebSphere Portal V6.0 がワークベンチのサーバー・リストにないことを示します。
回避方法:
サンプルを操作する前に、以下の手順に従って、 プロジェクトのターゲット・サーバー・ランタイムを設定する必要があります。
- 適切なターゲット・サーバーが使用可能であることを確認します。
- 設定 (「Windows」>「設定」>「サーバー」>「インストール済みランタイム」)によって、使用可能なサーバーのリストを表示および変更できます。
- 「WebSphere Portal V6.0 スタブ」を検索します。これは製品のポータル・ツール・フィーチャーと共にインストールされているはずです。それ以外の場合、「追加」ボタンをクリックして、WebSphere Portal V6.0 ランタイムを追加します。
- インポートされたプロジェクトを選択し、コンテキスト・メニューを使用してプロジェクト・プロパティーを表示します。
- ターゲット・ランタイムを選択します。プロジェクトに適合する使用可能なターゲット・ランタイムのリストが表示されます。
- 「OK」をクリックします。
- サンプルと共にインポートされた EAR プロジェクトに対して上記手順を繰り返します。
ターゲット・ランタイムを設定した後、以下の手順に従って、プロジェクトを再ビルドしてエラーを除去すると、デプロイ可能になります。
- プロジェクトを再ビルドするには、 「プロジェクト」>「クリーン」>「すべてのプロジェクトをクリーン」 または「選択したプロジェクトをクリーン」をクリックして、「OK」をクリックします。注: サンプルの中にはエラーが含まれているものもあります。
- エラーが含まれているサンプルをデプロイするには、 「エラーを含むアプリケーションのサーバーでの公開を許可」チェック・ボックス (「Windows」>「設定」>「サーバー」>「WebSphere」)を選択して設定する必要があります。
- 「OK」をクリックします。
- プロジェクトをデプロイするには、プロジェクト (EAR プロジェクトではない) を選択して、 「実行」>「サーバーで実行」をクリックします。ターゲット・ランタイムに対して同一タイプのサーバーが選択されていることを確認します。
Struts タイル・ポートレットでの作業中に、 動的ページ・テンプレート・サポート (Struts Tiles) プロジェクト・ファセットがインストールされる場合があります。動的ページ・テンプレート・サポート (Struts Tiles) プロジェクト・ファセットの追加は、 動的 Web プロジェクト内で Struts タイルを処理する簡単な方法ですが、Struts ポートレット・プロジェクトでは問題になります。インストールされた場合、デプロイメント時にランタイム・エラーが発生します。また、パレットを使用して、タイル・タグを Struts ポートレット JSP に追加すると、 不適切な taglib ディレクティブが追加されます。
回避方法: Struts タイル・ポートレットを開発する場合、デプロイメントの前に、以下の手順に従う必要があります。
- 動的ページ・テンプレート・サポート (Struts Tiles) プロジェクト・ファセットがインストール済みであるかどうかを判別します。「プロジェクト・プロパティー」>「プロジェクト・ファセット」を表示することによって判別が可能です。
- インストール済みの場合、以下の手順に従って、追加サーブレット、およびプロジェクトに追加された構成ファイルの項目を除去します。
- デプロイメント記述子エディターで web.xml ファイルを開きます。次に、「サーブレット」タブで、TilesServlet 項目を除去し、ファイルを保管します。
- Struts 構成ファイル・エディターで struts-config.xml ファイルを開きます。次に、「プラグイン」タブで、org.apache.struts.tiles.TilesPlugin 項目を除去し、ファイルを保管します。
注: プロジェクト・ファセット・ページから動的ページ・テンプレート・サポート (Struts Tiles) プロジェクト・ファセットを除去しても、上記の項目は除去されません。 リスト内のプロジェクト・ファセット項目はそのままにします。- タイル・タグを含む JSP ごとに、Struts ポートレット・タイル taglib が使用されていることを確認します。使用されていない場合は、以下のようにします (これは WPS V6.0 Struts タイル・ポートレットの場合です)。
- <%@taglib uri="http://jakarta.apache.org/struts/tags-tiles" prefix="tiles"%> を以下のように置き換えます。
- <%@taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>