Получение плохого содержимого в исключительной части конечного раздела при разборе xml, созданного клиентом C # в приложении GAEJ - PullRequest
1 голос
/ 28 января 2010

Я пытаюсь отправить потенциально большой кусок xml из клиента C # в приложение GAEJ, а затем проанализировать его в документе DOM.

Мне удалось заставить обработчик документов проанализировать xml, проанализировав данные запроса в строку, а затем обрезав ее, как показано ниже:

        String xml;
        BufferedReader rdr = req.getReader();
        String line;
        StringBuilder result = new StringBuilder();
        while ((line = rdr.readLine()) != null) {
            result.append(line);
        }
        xml = result.toString();
        db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(new StringReader(xml.trim())));

Однако приложение GAEJ должно быть настолько эффективным, насколько это возможно, и чтение потенциально больших входных данных xml в строку строка за строкой, в отличие от подачи исходного потока в анализатор, кажется довольно плохим. Я хотел бы, чтобы следующие работали:

        Document doc = db.parse(request.getInputStream());

Но тогда я всегда получаю «org.xml.sax.SAXParseException: содержимое не допускается в конце раздела». Если я выгружаю содержимое консоли request.getInputStream () в консоль, я вижу некоторые символы коробки после последнего закрывающего тега, но я не уверен, как они туда попали (на стороне клиента используется кодировка UTF-8) или как убрать их из входного потока. Спасибо!

1 Ответ

0 голосов
...