Liferay 6.0 CE でモバイル対応
Liferay 6.1 CE では標準でモバイル対応機能が入っていますが、Liferay 6.0 CE には入っていないため追加する必要があります。
Liferay 6.0 CE にモバイル対応機能を追加する方法をメモします。
環境
Liferay 6.0.6 CE
関連ファイルのダウンロード
Liferay 6.0 CE のモバイル対応ポートレット/プラグインである、multi-device extensionを使用します。
multi-device extensionはLiferay 6.0.5 CE用に作成されていますが、Liferay 6.0.6 CEの該当箇所のソースを眺めてみたところ、影響がある変更はなさそうでした。
multi-device extensionは、WURFL(Wireless Universal Resource FiLe)というモバイル機器のOS,User-Agent,端末情報を扱ったXMLのデータベースを使用します。
ポートレット/プラグインの追加・設定
1. WURFLの配置
wurfl-2.3.2.zipを${liferay.home}/wurfl/に配置します。
2. 設定ファイルの変更
${liferay.home}/portal-ext.propertiesにWURFLの設定を追記します。
wurfl.main=${liferay.home}/wurfl/wurfl-2.3.2.zip
wurfl.patches=
3. Liferayの起動
Liferayを起動します。
4. 拡張プラグインのデプロイ
multi-device-ext-6.0.5.1.warを${liferay.home}/deployに配置して、デプロイ完了を待ちます。
5. フックプラグイン・ポートレットのデプロイ
device-rules-hook-6.0.5.1.war, wurfl-web-6.0.5.1.1.warを${liferay.home}/deployに配置して、デプロイ完了を待ちます。
動作確認
youtubeの参考動画を元に動作確認をしてみてください。
起動時のメッセージングタイムアウト例外について
WURFLはデータ数が多いため、Tomcatの起動時の初期処理でLiferayのポートレット間メッセージング処理のタイムアウト秒数を超えてしまい例外が発生する場合があります。
その場合は、portal-impl.jarに含まれる設定ファイルをLiferayに配置して、timeoutの秒数を伸ばすと解決します。
$ cp messaging-core-spring.xml ${liferay.home}/tomcat-6.0.29/webapps/ROOT/WEB-INF/classes/META-INF/.
${liferay.home}/tomcat-6.0.29/webapps/ROOT/WEB-INF/classes/META-INF/messaging-core-spring.xml
<bean id="com.liferay.portal.kernel.messaging.sender.SynchronousMessageSender" class="com.liferay.portal.kernel.messaging.sender.DefaultSynchronousMessageSender">
<property name="messageBus" ref="com.liferay.portal.kernel.messaging.MessageBus" />
<property name="portalUUID" ref="com.liferay.portal.kernel.uuid.PortalUUID" />
<!-- 10000 → 20000 -->
<property name="timeout" value="20000" />
</bean>
参考
multi-device extension開発者の記事
http://milen.commsen.com/2011/03/liferay-multidevice-extension.html
6.0と6.1のモバイル対応比較
http://milen.commsen.com/2012/05/mobile-device-detection-in-liferay-61.html