Documentation

システムプロパティ

Liferay DXP/Portalは、アプリケーションサーバーのJVMで実行されます。 システムプロパティは、-D[name1]=[value1]形式でjavaに引数としてJVMに直接渡すことも、DXPシステムプロパティファイルを使用してロードすることもできます。 システムプロパティは、アプリケーションサーバーとそのすべてのアプリケーションで使用できるため、 ポータルプロパティ とは異なります。

アプリケーションサーバーの規定のスクリプトは、システムプロパティを追加/変更するための最も安全な場所です。 システムプロパティを集中化するために使用できます。 すべてのプロパティをJVM引数として渡すと、アプリケーションサーバーの起動時にすべてのプロパティが設定されるため、タイミングの問題がなくなります。 アプリケーションサーバー、DXP、およびその他すべてのWebアプリケーションは、プロパティをすぐに使用できます。

ただし、DXPは、必要なプロパティを設定するための便宜として、 portal-impl.jar/system.properties ファイルを使用します。 system.properties ファイルは、 system-ext.properties ファイルを使用して拡張またはオーバーライドできます。 システムプロパティファイルは、アプリケーションサーバーの起動後にポータルアプリケーションクラスローダーによってロードされます。 DXPがシステムプロパティを使用して構成するいくつかの機能を次に示します。

  • ファイルのエンコーディング

  • ロギング

  • デフォルトのXMLパーサー構成

  • JAXBコンテキストファクトリ

  • JRubyネイティブ拡張を有効にする

DXPは、次の方法でシステムプロパティファイルを使用します。

  • DXP は、システムプロパティ system.properties.setfalseでない限り、 system.properties (および system-ext.properties)の新しいプロパティを使用して プロパティを拡張します

  • DXP は、システムプロパティ system.properties.set.overridefalseでない限り、 system.properties (および system-ext.properties)の新しい値を使用して プロパティをオーバーライドします。

警告

アプリケーションサーバーの起動後のシステムプロパティの設定またはリセットにはリスクがあります

*アプリケーションサーバーで権限が有効になっている場合、システム値の変更が禁止される場合があります。 *システムプロパティは不変として扱われます。 アプリケーションサーバー上の別のプロセスは、DXPが値をリセットする前に、初期プロパティ値をキャッシュすることが考えられます。 このような場合、システムは同じプロパティに対して異なる値で動作しようとします。

ここでは、システムプロパティを指定する両方の方法を示します。

システムプロパティを直接設定する

システムプロパティを設定するためのアプリケーションサーバーの規定のスクリプトは、プロパティを追加および変更するための推奨場所です。

  1. 次のシステムプロパティをアプリケーションサーバースクリプトのJVM引数として設定することにより、 system.properties および system-ext.properties ファイルの使用を無効にします。

    -Dsystem.properties.set=false -Dsystem.properties.set.override=false
    
  2. 次の形式を使用して、新しい各プロパティをJVM引数として追加します。

    -D[name]=[value]
    
  3. 既存のプロパティを変更します。

  4. アプリケーションサーバーを再起動します。

アプリケーションサーバーとDXPは新しいシステムプロパティを使用しています。

system-ext.properties ファイルを使用する

DXPの system.properties ファイルを使用し、システムプロパティを拡張/上書きする場合は、 system-ext.properties ファイルを使用します。 手順は次のとおりです。

  1. アプリケーションサーバーを停止します。

  2. プロパティを system-ext.propertiesというファイルに追加します。

  3. system-ext.propertiesファイルをDXPのクラスパスに追加します。 DXPのWEB-INF/classesフォルダがクラスパスにあるため、system-ext.propertiesファイルをそのフォルダに追加できます。 以下の2つの方法で追加できます:

    DXPがWebアプリケーションとしてアプリケーションサーバーにインストールされた場合は、system-ext.propertiesをDXPアプリケーションのWEB-INF/classesフォルダに追加してください。

    DXPがアプリケーションサーバーにWARファイルとしてインストールされた場合、WARファイルの内容を抽出し、system-ext.propertiesファイルをWEB-INF/classesフォルダに追加します。 次に、コンテンツをWARファイルとして再パッケージ化します。

  4. アプリケーションサーバーを起動します。

  5. DXP Webアプリケーションをデプロイします。 詳細は、するための手順を参照してください アプリケーションサーバーへのインストールを

Liferay DXPはシステムプロパティを柔軟に処理するので、システムを自由に構成できます。