如何在app引擎应用程序中读取属性文件?

时间:2013-06-18 08:11:37

标签: file google-app-engine

我正在google appengine应用程序中的文件夹(/war/config/client.properties)中读取属性文件。它在我的本地服务器上工作正常,但它不能在生产模式下工作,它抛出异常java.security.AccessControlException:access denied(java.io.FilePermission)。

请告诉我如何让它在生产模式下运行。

1 个答案:

答案 0 :(得分:4)

如果将它放在WEB-INF / classes中,可以像这样加载它:

InputStream is =  this.getClass().getClassLoader().getResourceAsStream("/client.properties");

同样你可以做到

InputStream is = this.getServletContext().getResourceAsStream("/WEB-INF/client.properties");

然后:

Properties props = new Properties();
props.load(is);
String whatever = props.getProperty("whatever_key");

根据文档https://developers.google.com/appengine/docs/java/?hl=en-US#The_Sandbox

战争中的任何东西都应默认使用:

确保您没有在appengine-web.xml中排除任何内容:

  <resource-files>
        <exclude path="**.properties"/> ...make sure you haven't done this
  </resource-files>

战争中的任何内容都应该默认有用,所以尝试阅读/config/client.properties

java.io.FileReader肯定会。

InputStream is = this.getServletContext().getResourceAsStream("/config/client.properties");