我使用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