Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с SAXBuilder, Не могу отследить конец документа 
:(
    Опции темы
Гость_Андрей
Дата 4.11.2003, 03:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Пишу некий аналог "аськи". Возникла следующая проблема:
Клиент отправляеть серверу XML таблицу с помощью XMLOutputtera через Sockets. Причём сервер всё получает,я это чётко вижу. НО НЕ ВИДИТ КОНЦА ДОКУМУНТА.
, т.е. не идёт дальше строчки buider.build(in);
in = socket.getInputStream());
SAXBuilder builder = new SAXBuilder();
Document receive = builder.build(in);
Главная фишка в том, что если закрыть поток в клиенте ,
то всё приходит. Сразу говорю, flush() не помогает, да он и так вызывается в XMLoutputter 'е
Т.е. у меня получается , что каждый клиент может отправить только одно сообщение.
Причём проблема решается введением собственного входного потока и отправкой спецсимвола из клиента. Но так не должно быть!!!
Должен же быть нормальный способ решения .
Пробовал писать DTD, убил полдня, а эффект такой же
mad.gif
  Вверх
DarkDS
Дата 4.11.2003, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Какой парсер пользуешь?
PM MAIL   Вверх
Guest
Дата 4.11.2003, 12:36 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Parser - тот ,который по умолчанию работает. Я смотрел примеры с Jdom.org Сделал всё так же, но почему конец не виден.
Может пример кода у кого есть, где SAXBuilder получает Document из потока (только не из файла), т.к из файла и у меня работает
  Вверх
DarkDS
Дата 4.11.2003, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 748
Регистрация: 6.5.2003
Где: Таллинн, Эстония

Репутация: 11
Всего: 16



Эта... могу пример Апаческовского сакс парсера привести... Но у него чутка другой принцип работы...
PM MAIL   Вверх
KDA
Дата 10.11.2003, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 7.10.2003

Репутация: 1
Всего: 1



В данном случае Apache тоже не поможет.
Это происходит потому, что парсер ждет конца входного потока.
Тут есть несколько выходов:
1: Создать свой входной поток, который вернет -1, когда xml данные закончатся
2: Создать ByteArrayInputStream, предварительно получить xml документ в буфер

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0754 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.