gpt4 book ai didi

java - 在 Google App Engine 上读取静态 XML 文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:16:39 24 4
gpt4 key购买 nike

我的 App Engine 应用程序中有一个静态 XML 文件,它可以正常上传,我正在尝试读取它以获取一些基于规则的执行逻辑,但系统抛出了以下错误:

Caused by: java.security.AccessControlException: access denied (java.io.FilePermission /war/WEB-INF/StaticContent.xml read)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:393)
at java.security.AccessController.checkPermission(AccessController.java:553)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
at java.lang.SecurityManager.checkRead(SecurityManager.java:888)
at java.io.FileInputStream.<init>(FileInputStream.java:130)
at java.io.FileInputStream.<init>(FileInputStream.java:96)

我尝试将文件直接放在 war 和 war/WEB-INF 目录中,问题仍然存在。在服务器上尝试读取文件就这么简单:

final FileInputStream fis = new FileInputStream("/war/WEB-INF/StaticContent.xml");

根据这篇文章,我做的一切都是正确的: http://code.google.com/appengine/kb/java.html#readfile

任何帮助将不胜感激。

最佳答案

使用 getResourceAsStream 而不是直接打开 FileInputStream。

您在 FileInputStream 中指定的位置被视为绝对位置,这就是您获得 hte 访问被拒绝异常的原因。

ServletContext context = getServletContext();
InputStream is = context.getResourceAsStream("/WEB-INF/StaticContent.xml");

关于java - 在 Google App Engine 上读取静态 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6738352/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com