代码之家  ›  专栏  ›  技术社区  ›  Chris K

如何在Google应用程序引擎中加载属性文件?

  •  12
  • Chris K  · 技术社区  · 15 年前

    war/WEB-INF/my-service.properties 
    

    在我的ServiceImpl.java构造函数中,我有以下内容:

    String propertiesFileName = "my-service.properties"; 
    
    URL propertyURL = ClassLoader.getSystemResource(propertiesFileName);
    URL propertyURL2 = this.getClass().getClassLoader().getResource(propertiesFileName);
    URL propertyURL3 = this.getClass().getClassLoader().getResource( "WEB-INF/" + propertiesFileName);
    URL propertyURL6 = this.getClass().getClassLoader().getResource(
           "E:/Projects/eclipse-workspace/projectName/war/WEB-INF/" + propertiesFileName);
    

    属性URL的所有实例都为空。我知道我错过了一些非常明显的东西,但我需要第二双眼睛。当做

    编辑:

    啊,似乎我很困惑,因为默认的GAE项目在/war中创建了logging.properties文件。从 Google App Engine documentation:

    appengine Java SDK在appengine Java SDK/config/user/目录中包含一个template logging.properties文件。要使用它,请将该文件复制到WEB-INF/classes目录(或WAR中的其他目录),然后将系统属性java.util.logging.config.file复制到“WEB-INF/classes/logging.properties”(或您选择的相对于应用程序根目录的路径)。您可以在appengine-web.xml文件中设置系统属性,如下所示:

    3 回复  |  直到 15 年前
        1
  •  10
  •   jsight TaherT    15 年前

    尝试将service.properties放入WEB-INF/classes中。然后,只需使用以下工具即可访问:

    this.getClass().getClassLoader().getResourceAsStream("/filename.properties");
    
        2
  •  1
  •   Community CDub    8 年前

    作为 Mike jsight 答案是,如果我使用

    this.getClass().getClassLoader().getResourceAsStream("filename.properties");
    

    (删除了第一个斜杠)将文件放入WEB-INF/classes后。

        3
  •  0
  •   Rafael Sanches    11 年前

    我想你需要的是这样的东西:

    字符串filePath=servletContext.getRealPath(“/WEB-INF/views/”)+“/”+mav.getViewName()+“.vm”; FileInputStream in=新的FileInputStream(filePath);

    我从spring获取servletContext:@Autowire-servletContext。

    推荐文章