我正在尝试在存储在 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/