一尘不染

如何在Tomcat中的Webapp上下文之外读取属性文件

tomcat

我有这个要求,即我的Web应用程序需要从Tomcat webapps目录之外的属性文件中读取,例如从$ CATALINA_HOME / properties/ myapp.properties中读取。我已经尝试了几件事,但到目前为止还没有运气


阅读 193

收藏
2020-06-16

共1个答案

一尘不染

有多种方法。

  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();
}
2020-06-16