10

$CATALINA_HOME/properties/myapp.properties など、Tomcat webapps ディレクトリの外部にあるプロパティ ファイルから webapp が読み取る必要があるという要件があります。私はいくつかのことを試しましたが、これまでのところ運がありません

4

4 に答える 4

19

複数のアプローチがあります。

  1. 環境変数を使用する
  2. システム プロパティを使用する
  3. Web.xml でアプリケーション コンテキスト パラメータとして設定します。

サンプルを示します。Option 1 and Option 2

try {

    //Use Any Environmental Variable , here i have used CATALINA_HOME
    String propertyHome = System.getenv("CATALINA_HOME");           
    if(null == propertyHome){

        //This is a system property that is  passed
        // using the -D option in the Tomcat startup script
        propertyHome  =  System.getProperty("PROPERTY_HOME");
    }


    String filePath= propertyHome+"/properties/myapp.properties";

    Properties property = new Properties();         
    property.load(SystemTest.class.getClassLoader().getResourceAsStream(filePath));
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-03-10T04:12:05.873 に答える
2

私は、Tomcat コンテキスト記述子を介して構成するオプションを好みます。

これらの XML ドキュメントは、フォルダに配置されますtomcat/conf/Catalina/<host>/*.xml

.war ファイルからの Tomcat webapp 構成の外部化

于 2014-06-10T17:33:31.850 に答える
1

私たちのプロジェクトでは、ファイルのパスを vm 引数として構成します。これは tomcat プロパティとコードに格納され、System.getProperty(the parameter you config)パスを取得してプロパティ ファイルを読み取り、結果を取得するために使用します。

于 2013-03-10T03:45:20.190 に答える
0

次のように webapp-config ディレクトリのパスを配置しました。

/var/lib/tomcat7/webapps/webapp/WEB-INF/classes/system-properties-location.properties

どこで webapp = webapp ファイルの名前

system-properties-location.properties ファイルの内容は次のとおりです。

場所=/var/lib/tomcat7/webapp-configs/webapp

環境固有のプロパティを取得する外部の場所を指します。このようにして、戦争の内容を変更することなく、 dev 、 staging 、および prod で同じ戦争を展開できます。

于 2016-04-15T11:27:02.287 に答える