У меня есть строка, в которой есть 823237 символов. его на самом деле xml-файл и для целей тестирования я хочу вернуть в качестве формы ответа сервлет.Как обработать строку с 823237 символами
Я попробовал все, что я могу возможно думать о
1) создание постоянной со всей строкой ... в этом случае Eclipse, жалуется (с красной линией под названием класса сервлета) -
The type generates a string that requires more than 65535 bytes to encode in Utf8 format in the constant pool
2) разорвать всю строку в 20 строковых констант и запись в out
объекта непосредственно что-то вроде:
out.println(CONSTANT_STRING_PART_1 + CONSTANT_STRING_PART_2 +
CONSTANT_STRING_PART_3 + CONSTANT_STRING_PART_4 +
CONSTANT_STRING_PART_5 + CONSTANT_STRING_PART_6 +
// add all the string constants till .... CONSTANT_STRING_PART_20);
в этом случае ... сборка терпит неудачу .. жалуюсь ..
[javac] D:\xx\xxx\xxx.java:87: constant string too long
[javac] CONSTANT_STRING_PART_19 + CONSTANT_STRING_PART_20);
^
3) чтение файла XML в виде строки и записи out object
.. в этом случае я получаю
SEVERE: Allocate exception for servlet MyServlet
Caused by: org.apache.xmlbeans.XmlException: error: Content is not allowed in prolog.
Наконец, мой вопрос ... как я могу вернуть такую большую строку (как ответ) из servlet
???
я сделал с StringBuffer, но опять-таки сборка завершается с ошибкой, и я получаю ту же ошибку, что и 2, –
Обратите внимание, что String + String создает новую строку ;-) –
В документе XML не должно быть пробела или пробела или элемента xml перед проломом ' xml versi на = "1.0"?> '. –