この記事は、 portal-ext.properties
のプロパティが正しく動作しない場合の状況を文書化したものです。 また、 portal-ext.properties
のプロパティが有効にならない一般的な原因について説明し、 portal-ext.properties
で設定したプロパティが正しく実装されるように、ファイルの配置場所だけでなく、適切な設定方法についても解説しています。
解決策
1. 設定を保存する
コントロールパネルのユーザーインターフェイスで保存された設定は、データベースに保存されるため、 portal-ext.properties
の設定よりも優先されます。
2. 正しいプロパティやバリューを入れない
Liferayプラットフォーム内のすべてのプロパティのリファレンスは、 portal.properties
ファイルを見てみてください。 このファイルは、 portal-impl.jar
の中にあります。 どのようなプロパティがあるかということに加えて、ほとんどのプロパティには、その機能や設定できる値についての説明があります。 また、Javadocsのページでは、 portal.properties
をご覧いただけます:
3. portal-ext.propertiesを適切な場所に配置しない
portal-ext.properties
は完璧に設定することができますが、ポータルが検出できる場所に配置されていなければ、効果を発揮することはできません。 portal-ext.properties
を置く場所は2箇所あります:
-
$LIFERAY_HOME
(ここで Liferay プラットフォームは /data, /logs, /deploy フォルダを作成します) WEB-INF/classes
Liferayプラットフォームが起動すると、データベース接続の直前に読み込まれているプロパティファイルが表示されます。 このように表示されるはずです:
Loading jar:file:/root/liferay/tomcat-8.0.32/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties Loading jar:file:/root/liferay/tomcat-8.0.32/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties Loading jar:file:/root/liferay/tomcat-8.0.32/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties Loading file:/root/liferay/portal-ext.properties
注:デフォルトの LIFERAY_HOME
を変更した場合は、必ずその値を指定してください。
module.framework.base.dir=
を、モジュールフレームワークのベースパスを形成するディレクトリに追加します。
4. 同じ物件を複数持つこと、または相反する物件を持つこと
同じプロパティのコピーが複数あると、Liferayプラットフォームがそれらの値をすべて使用することになり、問題が発生する可能性が非常に高くなります。 例えば、このプロパティは、Liferay Portalサーバーのホスト名を表示するかどうかを制御します:
web.server.display.node=
有効な値は、true または false のいずれかである。
web.server.display.node=
のコピーが複数ある場合、両方が true に設定されていても、Liferay Portal はこれを true, true としてデータベースで読みます。 有効な値でないため、このプロパティは有効になりません。
portal-ext.properties
以外のプロパティファイルを include-and-override
プロパティでインクルードすることも可能であることに留意してください。 例はこちらでご覧いただけます:
include-and-override=portal-bundle.properties include-and-override=${liferay.home}/portal-bundle.properties include-and-override=portal-ext.properties include-and-override=${liferay.home}/portal-ext.properties include-and-override=portal-setup-wizard.properties include-and-override=${liferay.home}/portal-setup-wizard.properties
include-and-override
のプロパティは、リストアップされた順にロードされることに注意することが重要です。 例えば、portal-ext.properties
のプロパティがある値に設定され、portal-setup-wizard.properties
に同じプロパティが別の値に設定されている場合、portal-setup-wizard.properties
はportal-ext.properties
の後にロードされるため、portal-setup-wizard.properties
はportal-ext.properties
を上書きしてしまいます。
追加のプロパティファイルがある場合、競合するプロパティや重複するプロパティがないことを確認します。
5. ファイル名とファイル拡張子のスペルミス
portal-ext.properties
のスペルを間違えると、Liferayプラットフォームはそのファイルを読み込まず、その内容は無視されます。 また、Windowsでよく起こりうるミスとして、ファイル拡張子がファイル名から隠されている場合があります。 そのため、新しいテキストファイルを portal-ext.properties
として作成すると、実際には portal-ext.properties.txt
となり、また Liferay プラットフォームでは読み取れません。