5.2. 変数の置換
変数を使用してサーバー設定をパラメーター化できます。値への変数参照を解決するには、以下のソースを順番に参照します。
-
server.xml
ファイルのデフォルト変数値 - 環境変数
-
bootstrap.properties
- Java システムプロパティー
-
server.xml
ファイルの設定 - コマンドラインで宣言された変数
変数は ${variableName}
構文を使用して参照されます。
以下の例のようにサーバー設定に変数を指定します。
<variable name="variableName" value="some.value" />
server.xml
ファイルに指定されるデフォルト値は、他の値が指定されていない場合のみ使用されます。
<variable name="variableName" defaultValue="some.default.value" />
コマンドラインから、起動時に変数を指定することもできます。これを実行する場合、コマンドラインで指定された変数は、変数の他のソースをすべて上書きし、サーバーの起動後に変更することはできません。
環境変数には変数としてアクセスできます。バージョン 19.0.0.3 では、環境変数名を直接参照できます。変数が指定どおりに解決できない場合、server.xml
ファイルは環境変数名に以下のバリエーションを検索します。
-
英数字以外の文字をすべてアンダースコア(_
)
に置き換えます。 - すべての文字を大文字に変更します。
たとえば、server.xml
ファイルに ${my.env.var}
を入力すると、以下のような名前で環境変数が検索されます。
- my.env.var
- my_env_var
- MY_ENV_VAR
バージョン 19.0.0.3 以前では、以下の例のように、環境変数名の先頭に env.
を追加して環境変数にアクセスできます。
<httpEndpoint id="defaultHttpEndpoint" host="${env.HOST}" httpPort="9080" />
変数の値は、常に単純な型変換を持つ文字列として解釈されます。したがって、ポートのリスト(80、443 など )
は、2 つのポート番号ではなく単一文字列として解釈される可能性があります。以下の例のように list
関数を使用して 、
変数の置換を強制的に分割できます。
<mongo ports="${list(mongoPorts)}" hosts="${list(mongoHosts)}" />
Simple 演算は、整数値を持つ変数でサポートされます。演算子の左側と右辺は、変数または数字のいずれかになります。以下の例のように、演算子は +
、-
、*
、または /
のいずれかになります。
<variable name="one" value="1" /> <variable name="two" value="${one+1}" /> <variable name="three" value="${one+two}" /> <variable name="six" value="${two*three}" /> <variable name="five" value="${six-one}" /> <variable name="threeagain" value="${six/two}" />
事前定義された変数には多数あります。
-
wlp.install.dir
: Open Liberty ランタイムがインストールされているディレクトリー。 -
wlp.server.name
: サーバー名。 -
wlp.user.dir
:usr
フォルダーのディレクトリー。デフォルトは${wlp.install.dir}/usr
です。 -
shared.app.dir
: 共有アプリケーションのディレクトリー。デフォルトは${wlp.user.dir}/shared/apps
です。 -
shared.config.dir
: 共有設定ファイルのディレクトリー。デフォルトは${wlp.user.dir}/shared/config
です。 -
shared.resource.dir
: 共有リソースファイルのディレクトリー。デフォルトは${wlp.user.dir}/shared/resources
です。 -
server.config.dir
: サーバー設定が保存されるディレクトリー。デフォルトは${wlp.user.dir}/servers/${wlp.server.name}
です。 -
server.output.dir
: サーバーが workarea、ログ、およびその他のランタイム生成ファイルを書き込むディレクトリー。デフォルトは${server.config.dir}
です。