Попытка разобрать XML-файл, но получить java.security.AccessControlException в развернутом GAE

1

Я пытаюсь запустить SAXParser в приложении GAE в локальном файле XML, хранящемся в файле WEB-INF. Он отлично работает, когда я использую его в режиме разработки, но когда я его развертываю и пытаюсь разобрать этот файл, я получаю следующее исключение, и я не пишу XML файл, просто пытаюсь разобрать локальный:

java.security.AccessControlException: доступ запрещен ("java.io.FilePermission" "WEB-INF/MapInfo.xml" "write")

Код, который я пытаюсь запустить, выглядит следующим образом:

    @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;

}

Конструктор кажется немного странным, но не имеет значения для этой операции. Кто-нибудь видит проблемы здесь?

Теги:
google-app-engine
saxparser

1 ответ

0

Попробуйте заменить строку reader.parse следующим (извините, не удалось проверить его):

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню