© 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 タイル) プロジェクト・ファセットの追加を引き起こす場合があります。これは、ポートレットのデプロイメントの問題が発生する原因となります。詳しくは、既知の問題と回避方法を参照してください。
Struts ポートレットのサンプル (IBM または JSR168) をワークスペースにインポートする場合、インポートされた Struts ポートレットのサンプルにはエラーが定義されていないターゲット・ランタイムが含まれる場合があります。ワークベンチ構成や、マシンにインストールされているサーバーの種類によって、エラー「ターゲット・ランタイム WebSphere® Portal V6.0 は定義されていません。」がプロジェクトで発生する場合があります。これは、WebSphere Portal V6.0 がワークベンチのサーバー・リストに存在しないことを示します。
回避方法:
サンプルを使用して実行する前に、以下のようにプロジェクトにターゲット・サーバー・ランタイムをセットアップする必要があります。ターゲット・ランタイムを設定後、以下のように、プロジェクトを再ビルドしてエラーを除去してからデプロイすることができます。
- 適切なターゲット・サーバーが使用できることを確認します。
- 設定 (「ウィンドウ」>「設定」>「サーバー」>「インストールされたランタイム」) を行うことで、使用可能なサーバーのリストを表示し、変更することができます。
- 「WebSphere Portal V6.0 スタブ」を探します。このスタブは、製品のポータル・ツール機能を使用してインストールする必要があります。その他の場合は、「追加」ボタンをクリックして、WebSphere Portal V6.0 Runtime を追加します。
- インポートされたプロジェクトを選択し、コンテキスト・メニューを使用してプロジェクトのプロパティーを設定します。
- ターゲット・ランタイムを選択します。選択可能な、プロジェクトに一致するターゲット・ランタイムのリストが表示されます。
- 「OK」をクリックします。
- サンプルと一緒にインポートされた EAR プロジェクトの手順を繰り返します。
- プロジェクトを再ビルドするには、「プロジェクト」>「クリーン」>「すべてのプロジェクトをクリーン」または「選択したプロジェクトをクリーン」をクリックして、「OK」をクリックします。注: 一部のサンプルにはエラーが含まれます。
- エラーを含むサンプルをデプロイするには、「エラーを含むアプリケーションのサーバーでの公開を許可」チェック・ボックス (「ウィンドウ」>「設定」>「サーバー」>「WebSphere」) を選択して、設定を行う必要があります。
- 「OK」をクリックします。
- プロジェクトをデプロイするには、プロジェクト (EAR プロジェクトではない) を選択し、「実行」>「サーバーで実行」をクリックします。ターゲット・ランタイムには同じタイプのサーバーを選択するようにしてください。
Struts タイル・ポートレットで作業しながら、動的ページ・テンプレート・サポート(Struts Tiles用)プロジェクト・ファセットを起動してインストールすることが可能です。動的ページ・テンプレート・サポート(Struts Tiles用)プロジェクト・ファセットの追加は、Struts ポートレット・プロジェクトではなく、動的 Web プロジェクト内の Struts タイルを扱うための簡単な方法です。インストールされた場合は、デプロイメントのランタイム・エラーの原因になります。さらに、パレットを使用してタイル・タグを Struts ポートレット JSP に追加すると、不正な taglib ディレクティブが追加されます。
回避方法: Struts タイルのポートレットを開発中である場合、デプロイメントの前に以下の作業が必要です。
- 動的ページ・テンプレート・サポート(Struts Tiles用)プロジェクト・ファセットがインストール済みであることを確認します。「プロジェクトのプロパティー」>「プロジェクト・ファセット」を選択して実行することができます。
- インストール済みである場合、プロジェクトに追加されている追加サーブレットと構成ファイルの項目を除去します。
- 配置ディスクリプター・エディター内の web.xml ファイルを開きます。Servlet tab で、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"%>