はじめてのLiferay─短時間で高度なWebシステム構築

第3回 Liferay IDEで始めるポートレット開発

この記事を読むのに必要な時間:およそ 13 分

Liferay開発環境のセットアップ

今回はLiferay IDEからキャッシュを無効にしましたが,Liferay本体のJSPファイルやCSSファイルを修正する場合などはLiferay IDEを使わずに,起動しているLiferayのJSPファイルやCSSファイルを直接修正して試したい場合もあります。そのような場合にキャッシュを無効にするには,先ず解凍したLiferay内の\webapps\ROOT\WEB-INF\classesフォルダのportal-developer.propertiesファイルをアプリケーションサーバ・フォルダのbinフォルダに複写します。次にテキストエディタで同フォルダ内のsetenv.batファイルを開きます(Linuxを利用されている場合はsetenv.shファイルを開きます。次のように最後の行の「set "JAVA_OPTS=」「-Dexternal-properties=portal-developer.properties」を追加します。

set "JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=Shift_JIS -Djava.net.preferIPv4Stack=true -Dorg.apache.catalina.loader.WebappClassLoader.ENABLE_CLEAR_REFERENCES=false -Duser.timezone=GMT -Xmx1024m -XX:MaxPermSize=256m -Dexternal-properties=portal-developer.properties"

Liferay 6.2.0からはJAVA_OPTSの代わりにCATALINA_OPTSになります。

Liferay SDKの登録

Liferay IDEのポートレットを開発する場合はLiferay SDKを使います。Liferay SDKを使えばポートレット,テーマ,レイアウトなどLiferay用プラグインのテンプレートを生成することができます。勿論,Liferay SDKを使わずにポートレットを開発することもできますが,その場合は自分でプロパティファイルを作成する必要があるため,JSR286の知識とプロパティファイルを作成する時間が必要になります。

Liferay SDKはSourceForgeのLiferay SDKダウンロードページからダウンロードできます図11)⁠Liferay SDKのバージョンはLiferayのバージョンと一致する必要があります。もしLiferay EE版を使われている場合は,LiferayサブスクリプションサイトからLiferay EE版用のLiferay SDKを入手する必要があります。残念ながらLiferay EE版のSDKは一般公開されていないため,トライアル版のLiferay EEを利用されている場合はLiferay社に連絡して入手する必要があります。

図11 Liferay SDKダウンロードページ

図11 Liferay SDKダウンロードページ

liferay-plugins-sdk-6.1.1-ce.ga2-20121004092655026.zipファイルをダウンロードしたら,フォルダに解凍します。開発するポートレットのプロジェクトはこのLiferay SDKフォルダ内の「portlets」フォルダ内に作成されます。

Liferay SDKを設定するには,Liferay IDEメニューから「ウインドウ」「設定」を選択します。右側の表示されるメニューから「Liferay」「インストールされたプラグインSDKを設定」を選択します。⁠インストールされているプラグインSDK」が表示しますので,⁠追加」ボタンを押下して「場所」にLiferay SDKを解凍したフォルダを選択します。

図12 Liferay SDK設定画面

図12 Liferay SDK設定画面

「OK」ボタンを押下すると図13のように指定したLiferay SDKがプラグインSDKに追加された画面が表示します。⁠OK」ボタンを押下して設定ダイアログ画面を閉じます。これでLiferay IDEの設定は完了しました。

図13 インストールされているプラグインSDK画面

図13 インストールされているプラグインSDK画面

はじめてのポートレット

Liferay IDEの設定が終わったら,ウィザードを使ってポートレットを生成することができます。先ずはプロジェクト名を表示するポートレットを作成してみましょう。

図14のようにメニューから「ファイル」「新規」「Liferayプロジェクト」を選択してポートレットを開発するためのLiferayプロジェクトを作成します。

図14 Liferayプロジェクトの作成

図14 Liferayプロジェクトの作成

Liferay IDEウィザードが起動して図15のような画面が表示します。⁠プロジェクト名」「MyFirstPortlet」と入力します。プロジェクト名は英字にしてください。日本語は使わないでください。ポートレット名を日本語で表示する場合は言語プロパティファイルで設定します。

今回はポートレットを作成するので,⁠プラグインタイプ」「ポートレット」であることを確認した後に「完了」ボタンを押下します。パッケージ・エクスプローラー・ビューに「MyFirstPortlet-portlet」が追加されます。これでポートレットは生成されました。

図15 Liferayウィザード画面

図15 Liferayウィザード画面

作成したポートレットをLiferayのページに配置して確認してみましょう。ポートレットをLiferayにデプロイするためにLiferayを起動します(サーバー・ビューからサーバ名を選択して,⁠サーバーを起動」アイコンを選択する)⁠

Liferayサーバが起動したら,図16のようにパッケージ・エクスプローラー・ビューの「MyFirstPortlet-portlet」を右クリックして「Liferay」「SDK」「deploy」を選択します。

図16 ポートレットのデプロイ

図16 ポートレットのデプロイ

build.propertiesファイルを上書きするか確認ダイアログが表示した場合は,⁠いいえ」を選択します図17)⁠

図17 antパロパティの上書き確認

図17 antパロパティの上書き確認

デプロイするとLiferay SDK\portletsディレクトリからLiferayサーバのdeployフォルダにファイルが複写されます。その後にdeployフォルダからtomcat\webappsフォルダに移動されます。図18のようにコンソール・ビューにログが表示されます。

図18 ポートレットのデプロイ・ログ(コンソール・ビュー)

図18 ポートレットのデプロイ・ログ(コンソール・ビュー)

Liferayのページに「MyFirstPortlet-portlet」ポートレットを配置するために,Webブラウザを開いてLiferayにログインしてください。メニューから「追加」「その他」を選択して「サンプル」を展開します。メニューに「MyFirstPortlet」が追加されているので,ページに配置してください。図19のようにポートレット内に「This is the MyFirstPortlet portlet」と表示されます。

図19 ⁠MyFirstPortlet」の配置

図19 「MyFirstPortlet」の配置

余談になりますが,Liferayサーバにデプロイされたポートレットは図20のようにtomcatのwebappsフォルダにあります。MyFirstPortlet-portletフォルダを展開して内容を見てみましょう。

図20 Liferayサーバのwebappsフォルダ

図20 Liferayサーバのwebappsフォルダ

ポートレットをデプロイすると,Liferayは必要な設定ファイルを追加してアプリケーションサーバにデプロイします。Tomcatの場合は,webappsフォルダの下にポートレットのフォルダが作成されます。今回の場合は「MyFirstPortlet-portlet」フォルダが作成されます。MyFirstPortlet -portlet\WEB-INFフォルダを展開するとliferay-plugin-package.xmlファイルとliferay-web.xmlファイルが追加されていることを確認できます。

liferayで始まるファイルはLiferay固有の設定ファイルです。liferay-plugin-package.xmlはliferay-plugin-package.propertiesファイルから生成されます。liferay-plugin-package.propertiesを修正してデプロイするとliferay-plugin-package.xmlに反映されます。liferay-plugin-package.propertiesでよく使われる設定は「liferay-versions」です。ここの値はポートレットが対応しているLiferayのバージョンを示します。今回はLiferay 6.1.1を使っているので値は「6.1.1」です。Liferayの次のバージョンが公開された場合に,このポートレットをデプロイできるようにするにはLiferay IDEからliferay-plugin-package.propertiesファイルを開いて,⁠6.1.1」「6.1.1+」に変更します。

liferay-plugin-package.propertiesには依存関係も記述できます。Liferay本体に含まれているjarファイルやtldファイルをポートレットで使う場合は,ポートレットに予めそのjarとtldを複写することもできますが,Liferayと同じバージョンを使いたい場合はportal-dependency-jarsおよびportal-dependencies-tldsに使うjarファイルおよびtldsファイルを記述するとポートレットがデプロイされる時に指定されたファイルがポートレットのフォルダに複写されます。

liferay-web.xmlは,Liferayにweb.xmlの追加設定です。<filter>と<filter-mapping>の設定が追加されます。

著者プロフィール

小沢仁(おざわひとし)

株式会社オージス総研

米シカゴ育ち。シカゴ大学で物理を専攻。Oracle XDKを日本に紹介,Seasar英語ページを作成,ESB Muleコミッタとして同ソフトの日本ローカライズ/日本語サイト構築,WaveMakerの日本語ドキュメントを作成,Apache ManifoldCFコミッタ/日本語ページやMySQL対応を貢献。IEEE APSCC 2009などでSOAの研究発表も行っている。

Liferayに興味をもち,Liferay.comフォーラムでサポートしたりWikiページを作成している。Liferay6およびLiferfay IDEの日本語化や日本語資料も作成している。2012年にLiferay社からグローバルレベルでの「Liferay Community Contributor of the Year 2012」を受賞。

現在,米ナッシュビルで開催されるAgile2013カンファレンスでオフショア開発についての発表申請に時間を費やしている。

コメント

コメントの記入