Я получал
javax.net.ssl.SSLHandshakeException: Chain validation failed
и
java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date
решение, которое работало для меня, заключалось в принудительной холодной загрузке эмулятора через диспетчер виртуальных устройств -> выпадающий список действий -> холодная загрузка Теперь
Это сообщение (апрель 2009 г.) из списка рассылки Xerces J-Users, где у исходного плаката точно такая же проблема. Дан один потенциально очень хороший ответ «Джеффа», но нет ответа на исходный ответ автора:
http://www.nabble.com/parsing-an-xml-document-chunk-by-chunk -td22945319.html
Это потенциально достаточно ново, чтобы попасть в список или, по крайней мере, помочь с поиском.
Изменить
Нашел еще одну полезную ссылку, упоминающую библиотеку под названием Woodstox и описывающую состояние Stream и . Парсеры на базе NIO и некоторые возможные подходы к эмуляции потока:
Редактировать: Теперь понятно. Вы получаете XML кусками и хотите передать его соответствующему синтаксическому анализатору XML. Итак, вам нужен объект, который представляет собой очередь на одном конце и InputStream на другом?
Вы можете агрегировать байтовые массивы, полученные в ByteArrayOutputStream, преобразовать его в ByteArrayInputStream и передать его в SAXParser.
] Или вы можете проверить пару PipedInputStream / PipedOutputStream. В этом случае вам нужно будет выполнить синтаксический анализ в другом потоке, поскольку синтаксический анализатор SAX использует текущий поток для генерации событий, блокируя ваш receive ().
Изменить : Основываясь на комментариях, я предлагаю выбрать маршрут агрегации . Вы собираете куски в ByteArrayOutputStream. Чтобы узнать, все ли вы получили фрагменты для своего XML, проверьте, содержит ли текущий фрагмент или содержимое ByteArrayOutputStream ваш конечный тег корневого узла XML. Затем вы можете просто передать данные в SAXParser, который теперь может без проблем работать в текущем потоке. Чтобы избежать ненужного повторного создания массива, вы можете реализовать свою собственную несинхронизированную оболочку простого байтового массива или искать такую реализацию.
Извините, мне не удалось решить эту проблему. Мне не удалось найти парсер, который мне нужен. Но я думаю написать его самостоятельно. Очень простой: точно так же, как исследование фискальности, но достаточно, чтобы решить мою проблему и, надеюсь, вашу. К счастью, я был очень занят, и следующие две недели я уйду, но, может быть, в июле я начну над этим работать. Я дам тебе знать, как только у меня что-нибудь заработает.
mt
Проверьте openfire XMLLeightweightParser и то, как он генерирует сообщения XML из отдельных фрагментов из-за NIO. Весь проект - отличный источник ответов на вопросы NIO и XMPP.
Удивительно, но никто не упомянул один парсер Java XML, который реализует неблокирующий ("асинхронный") синтаксический анализ: Aalto. Частично причиной может быть отсутствие документации (и ее низкий уровень активности). Aalto реализует базовый API Stax, а также небольшие расширения, позволяющие отправлять ввод (эта часть еще не доработана; функциональность существует, но API не доработан). Для получения дополнительной информации вы можете посетить связанную дискуссионную группу.