java - 尝试解析 xml 文件但在部署的 GAE 中出现 java.security.AccessControlException

标签 java xml google-app-engine saxparser

我正在尝试在存储在 WEB-INF 文件中的本地 XML 文件上的 GAE 应用程序上运行 SAXParser。当我在开发模式下使用它时它工作正常,但是当我部署它并尝试解析该文件时,我得到以下异常,并且我没有编写 XML 文件,只是尝试解析本地文件:

java.security.AccessControlException:访问被拒绝(“java.io.FilePermission”“WEB-INF/MapInfo.xml”“写入”)

我尝试运行的代码如下所示:

    @Override
public Double countPOIs() {
    Double total = 0.0;
    List<String> Coordinates;
    Coordinates = new ArrayList<String>();

    try {
        XMLParser parser = new XMLParser(Coordinates, 8);
        XMLReader reader = XMLReaderFactory.createXMLReader();
        reader.setContentHandler(parser);
        reader.parse("WEB-INF/MapInfo.xml");
        total = parser.getACC();

    } catch (SAXException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }


    return total;

}

构造函数看起来有点奇怪,但它与此操作无关。有人看到这里有什么问题吗?

最佳答案

尝试用以下内容替换 reader.parse 行(抱歉,无法测试它):

final javax.servlet.ServletContext servletContext = this.getServletContext();
java.io.InputStream stream = servletContext.getResourceAsStream("/WEB-INF/MapInfo.xml");
reader.parse(stream);

关于java - 尝试解析 xml 文件但在部署的 GAE 中出现 java.security.AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22389404/

相关文章:

java - 为什么将变量声明为 int 类型需要转换流? long 类型不需要强制转换

java - 带有详细页面的“图书馆”

java - 使用@Transactional 注解的问题

sql - 在 PostgreSQL 的 where 子句中使用 XML 列

c# - 在C#中合并相同类型的xml节点

xml - 将结构作为参数传递给函数,并返回相应结构的 slice

java - 按键获取GAE实体

google-app-engine - 激怒用户对 Google App Engine 的查询

java - 有没有办法在 Java Spring 中将不可预测数量的 Monos 合并到列表中?

google-app-engine - Google App Engine 中的 GZIP 内容使用 django-nonrel