12.2.1 形式
Java SEのプロパティファイル形式です。
次のようにキーを指定します。
<キー名称>=<値>
プロパティファイル内で非ASCII文字を記述する場合は,UTF-8(BOMなし)でエンコードする必要があります。
キー名称には,可変値が含まれる場合があります。また,値には,変数を含めることができます。プロパティキーに含まれる可変値およびプロパティ値の変数展開について次に示します。
- 〈この項の構成〉
(1) プロパティキーに含まれる可変値
各プロパティキーには,次の可変値が含まれる場合があります。可変値について次に示します。
- <n>
-
複数の値を設定できるプロパティキーの末尾にある可変値です。プロパティを設定する場合は,<n>の部分を一意な自然数(1以上の整数)に置き換えてください。
- <group-id>
-
複数のプロパティをグループとして定義(グループ化)するための値で,プロパティキー中にある可変値です。プロパティを設定する場合は,<group-id>の部分を任意の文字列(1文字以上)に置き換えてください。
次の点を満たすプロパティが1つのグループとして扱われます。
-
先頭から<group-id>までの文字列が同じプロパティ
-
置き換えた<group-id>が一致している,複数のプロパティ
なお,<group-id>を置き換える文字列には,次の文字を使用できません。
-
.(0x2e)
-
:(0x3a)
-
=(0x3d)
-
(2) プロパティ値の変数展開について
プロパティの値に${XXX}形式を含めた場合は,変数として値が置換されます。XXXの部分に指定できる文字列は次のどれかです。
-
catalina.base
-
catalina.home
-
<任意の環境変数名>
-
<プロパティキー名>
次に,変数を指定した場合の詳細を説明します。
-
指定した環境変数が存在しない場合,または,指定したプロパティが定義されていない場合はエラーとなります。
-
指定した環境変数と同名のプロパティが存在した場合はエラーとなります。
-
${XXX}形式のネストは置換できません。「${」から,最初に出現した「}」までの文字列を,XXXの部分として扱います。
-
プロパティキーへの指定は無効です。指定した場合,変数展開しないで文字列として扱います。
-
展開先の文字列に${XXX}の形式を含めることはできません。指定した場合,そのままの文字列となります。
-
OSの仕様に関係なく,大文字・小文字を区別します。
-
変数「${catalina.base}」はTomcatのベースディレクトリとして展開できます。
${catalina.base}の値は,Tomcatによって次のように決定されます。
-
環境変数CATALINA_BASEが設定済みの場合:環境変数CATALINA_BASEの値
-
1.以外で,環境変数CATALINA_HOMEが設定済みの場合:環境変数CATALINA_HOMEの値
-
1.および2.以外の場合:Tomcatが提供するcatalina.shのディレクトリの親ディレクトリパス
-
-
変数「${catalina.home}」はTomcatのホームディレクトリとして展開できます。
${catalina.home}の値は,Tomcatによって次のように決定されます。
-
環境変数CATALINA_HOMEが設定済みの場合:環境変数CATALINA_HOMEの値
-
1.以外の場合:Tomcatが提供するcatalina.shのディレクトリの親ディレクトリパス
-
- ポイント
-
環境変数が変数展開できる機能を利用することで,config.properties(uCART設定ファイル)を直接編集しなくても起動時に設定値を決定できます。また,同一マシン・同一ホスト上に複数のTomcatインスタンスがある場合に,config.properties(uCART設定ファイル)を1つに集約できます。
例えば,config.properties(uCART設定ファイル)に次を定義した場合,monitor.rest.portはTomcat起動時の環境変数MY_MONITOR_PORTの値で動作します。
monitor.rest.port=${MY_MONITOR_PORT}
変数は,環境変数である必要があります。setenv.sh(Tomcat起動時の環境変数定義ファイル)で環境変数を定義する場合は,次のように,先頭にexportを付与してください。
export MY_MONITOR_PORT=28888