我正在google appengine应用程序中的文件夹(/war/config/client.properties)中读取属性文件。它在我的本地服务器上工作正常,但它不能在生产模式下工作,它抛出异常java.security.AccessControlException:access denied(java.io.FilePermission)。
请告诉我如何让它在生产模式下运行。
答案 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");