我使用XML文件保存SQL查询。根据此处的应用引擎指南:http://code.google.com/appengine/kb/java.html#readfile

我在war / WEB-INF目录中有文件,并且加载是这样的:

        DocumentBuilder db = dbf.newDocumentBuilder();
        dom = db.parse("\\WEB-INF\\Queries.xml");


当我部署到GAE时,我会在日志中看到以下内容:

access denied (java.io.FilePermission /\WEB-INF\Queries.xml read)


我错过了什么?

最佳答案

它会将路径视为绝对路径,因此表示拒绝访问该文件。

而是使用以InputStream作为参数的parse(InputStream is)重载。

尝试这段代码,应该可以正常工作。

ServletContext context = getServletContext();
InputStream is = context.getRealPath("/WEB-INF/Queries.xml");
DocumentBuilder db = dbf.newDocumentBuilder();
        dom = db.parse(is);// throws SAXException and IOException

09-10 06:53
查看更多