1

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

你能告诉我如何让它在生产模式下工作吗?

4

1 回答 1

5

如果你把它放在 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");
于 2013-06-18T08:19:30.557 回答