XMLStreamWriter - ошибка записи длинной строки в программу записи XML

Я работаю над проектом gradle, который включает чтение и запись в XML-файлы. Я столкнулся с проблемой при попытке записать очень длинную строку из экранированного XML в файл, используя XMLStreamWriter, Эта строка в итоге занимает около получаса для записи в файл и перестает отвечать на запросы моего приложения. Проблема возникает, когда я вызываю метод:

writer.writeAttribute(key, escapedXML)

Странно то, что я импортировал проект gradle в eclipse и intellij; проблема возникает, когда я запускаю приложение в eclipse и когда я запускаю исполняемый файл jar, созданный с помощью gradle, но когда я запускаю программу в intellij, она быстро завершается без проблем. Я не включил никаких дополнительных jar-файлов, кроме зависимостей, включенных в файл build.gradle. Я пытался найти различия в зависимостях или настройках между двумя IDE, но я не смог ничего найти. Я также проверил, что обе IDE используют одну и ту же JRE. Я также попытался запустить JAR с большим объемом памяти, выделенной для приложения, но это не помогло. Я уверен, что упускаю что-то очевидное, и я действительно буду признателен за помощь Пожалуйста, дайте мне знать, если вы можете сказать, что мне не хватает.

Обновление: провел еще несколько дней, изучая это без удачи. Я использовал intellij для создания исполняемого фляги, но проблема была и в этом. Я также посмотрел путь к классу для приложения при запуске в eclipse и intellij. Путь включал несколько jar-файлов из jdk1.8.0_121\lib при запуске в intellij, но не в eclipse. Затем я скопировал путь к классу intellij и запустил jar с указанным путем к классу. Все еще не повезло. Я надеюсь, что предоставил достаточно деталей, чтобы зажечь некоторые идеи. Любые предложения будут ценны.

1 ответ

Решение

Я выяснил причину проблемы. По всей видимости, intellij автоматически устанавливал кодировку для моего XMLStreamWriter на UTF-8, а затмение - нет. Я изменил это

 XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream);

к этому

XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(outStream, "UTF-8");

и моя проблема была решена.

Другие вопросы по тегам