システムプロパティ

システムプロパティを使用して、Mule アプリケーションのコネクタまたはコンポーネントが使用するプロパティプレースホルダ値を指定または上書きできます。MuleSoft では、アプリケーションを新しい環境にデプロイして Mule アプリケーション用の設定プロパティファイルの値を上書きする必要がある場合には、この方法をお勧めします。

システムプロパティは以下の方法で管理できます。

  • Anypoint Studio のプロジェクトの [Run Configurations (設定を実行)] ウィンドウから。

  • スタンドアロン Mule インスタンスのコマンドラインから。

Anypoint Studio でシステムプロパティを設定する

Studio の Package Explorer からプロジェクトを起動するときにプロパティを追加できます。

  1. Package Explorer で Mule アプリケーション用のプロジェクトを右クリックします。

  2. [Run As (別のユーザとして実行)]​ > ​[Run Configurations (設定を実行)]​ をクリックします。

  3. [Arguments (引数)]​ タブを選択します。

  4. 引数を ​[VM Arguments (VM 引数)]​ 項目に追加し、プロパティ名の先頭に ​-D​ を追加します。

    Arguments+Tab

    Studio からアプリケーションをデプロイする場合、プロパティプレースホルダの新しい値がそのプレースホルダについて設定された他の値よりも優先されます。

    <logger message="${propertyFromJVMArg}" doc:name="System Property Set in Studio through JVM args"/>

オンプレミスデプロイメント用にシステムプロパティを設定する

オンプレミス Mule インスタンス用に、コマンドラインからシステムプロパティを設定および変更することも、​wrapper.conf​ ファイルで定義することもできます。

Mule を開始するときにシステムプロパティを設定する

-M-Dmule.<variable-name>=<value>​ を ​mule​ または ​mule start​ コマンドに追加してシステムプロパティを設定します。
<variable-name>​ を目的のプロパティ名に置き換えます。
<value>​ をプロパティに定義する値に置き換えます。

次の例では、Mule を開始して異なる値で 2 つのプロパティを定義します。

$ mule start -M-Dmule.myEnv=prod -M-Dmule.myValue=1234

wrapper.conf ファイルでシステムプロパティを設定する

wrapper.java.additional.<n>​ エントリを ​${MULE_HOME}/conf​ ディレクトリの ​wrapper.conf​ ファイルに追加して、プロパティ名の先頭に ​-D​ を追加します。

たとえば、Mule エンコードを設定するには、次の行をラッパー設定ファイルに追加します。

wrapper.java.additional.999=-Dmule.encoding=ISO-8859-1

システムプロパティの追加に関する考慮事項

  • 新しいプロパティのエントリ番号が使用中でないことを確認します。

    設定ファイルに ​wrapper.java.additional.<n>​ エントリを追加する場合、必ず ​<n>​ の各インスタンスを未使用の新しい番号に変更してください。それ以外の番号にすると、Java はプロパティを正しく解析しません。

  • インクルードファイル内のプロパティのシーケンス以外の値を使用します。

    インクルードファイルに ​wrapper.java.additional.<n>​ エントリを追加する場合は、高い ​<n>​ 値を設定して、プロパティの数値が標準シーケンス以外になるようにします。また、​wrapper.ignore_sequence_gaps​ プロパティが ​true​ に設定されていることを確認します。. 次に例を示します。

    wrapper.java.additional.1900=-Dprop=value1
    wrapper.java.additional.1901=-DotherProp=value2
    wrapper.ignore_sequence_gaps=TRUE

Was this article helpful?

💙 Thanks for your feedback!