Я получаю эту ошибку при разборе XML-файла с использованием JDOM.
Что происходит, я получаю поток данных, который представляет собой XML в сочетании с PDF в качестве вложения в него. Поэтому, когда я пытаюсь создать документ об этом, эта ошибка выдается.
Я попытался напечатать этот поток, и на консоли я получаю следующее: Это с большим количеством ненужных символов (содержимое PDF), но в Wordpad это выглядит так -
------=_Part_2_23286828.1296553488632
Content-Type: text/xml; charset=utf-8
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
....
....
....
<Attachment>
<URI>Filename.pdf</URI>
</Attachment>
</SOAP-ENV:Envelope>
------=_Part_2_23286828.1296553488632
Content-Type: application/pdf; name="Filename.pdf"
Content-Transfer-Encoding: binary
Content-ID: </Attachment[1]/URI[1]>
Content-Disposition: attachment; filename="Filename.pdf"
%PDF-1.4
%âãÏÓ
4 0 obj <</Type/XObject/ColorSpace/DeviceRGB/Subtype/Image/BitsPerComponent 8/Width 579/Length 52722/Height 480/Filter/DCTDecode>>stream
ÿØÿà
Обратите внимание, что xml между <SOAP-ENV:Envelope>
и </SOAP-ENV:Envelope>
правильно сформирован.
Как я мог пойти и создать документ JDOM из этого? Я полагаю, удалив содержимое до и после тегов xml start / end, но как это сделать?
Я прочитал, что BOMInputStream от Apache IO Commons полезен, но я верю, что он в версии 2. * и я использую версию 1.3.1
Надеюсь, это объясняет мою проблему, если не, пожалуйста, дайте мне знать.
Спасибо.
UPDATE
Сначала я не осознавал, что это будет так громоздко.
На самом деле, я делаю вызов от одного сервлета к другому (doPost), используя HttpURLConnection. Возврат в виде этого потока.
Теперь я также пытаюсь выяснить, могу ли я каким-либо образом извлечь часть XML, используя некоторые методы, предоставляемые Http / URLConnection.
Цените, если кто-нибудь может пролить немного света на это.