Создание многопоточного Java-сервера и клиентов, но сообщения должны быть в формате XML - PullRequest
0 голосов
/ 04 августа 2009

Мне нужно написать многопоточную программу чата с использованием сервера и клиентов, но каждое отправленное сообщение должно быть в формате XML.

Проще или проще просто написать весь код в java, а затем попробовать и каким-то образом изменить его так, чтобы сообщения отправлялись в формате XMl, или было бы проще просто попытаться сделать это в XML и надеяться оно работает. Я признаю, что не так много знаю об XML. :)

Кроме того, любые ссылки на любые соответствующие онлайн-справки / учебники будут высоко ценится. Спасибо.

Ответы [ 6 ]

1 голос
/ 05 августа 2009

Выезд XStream . Вы можете использовать это для маршаллинга обычного Java-объекта в XML и обратно в объект, без необходимости делать что-либо навязчивое, например, определять интерфейсы или задавать схему и т. Д., То есть это работает из коробки для уже определенных вами объектов. В большинстве случаев это без проблем в режиме по умолчанию.

XStream создает прямое сериализованное представление XML объекта Java (т. Е. Элементы XML представляют каждое поле объекта Java напрямую). Вы можете настроить это далее как / когда вам требуется. Если вы хотите определить постоянные объекты в терминах схемы (XSD), тогда это не подходит. Однако, если вы транспортируете объекты, где постоянство является краткосрочным, и вы не беспокоитесь о соответствии какой-либо схеме, тогда это определенно полезно.

, например

            Person person = new Person("Brian Agnew");
            XStream xStream = new XStream();
            System.out.println(xStream.toXML(person));

и преобразование из XML в Person объект также тривиально.

(примечание XStream является поточно-ориентированным )

1 голос
/ 04 августа 2009

При работе с XML в Java ПОЖАЛУЙСТА, рассмотрите возможность использования JAXB или чего-то подобного. Он позволяет вам работать с обычным графом объектов в памяти, а затем сериализовать его в XML за одну операцию (и наоборот).

Управление XML с помощью DOM API - это медленный способ потерять здравомыслие, не делайте этого за нетривиальное количество XML.

Я не вижу, какое отношение имеет к ней многопоточная программа или сервер ...

0 голосов
/ 14 августа 2009

Вы находитесь на правильной странице, пытаясь разбить задачу на более мелкие части.

0 голосов
/ 04 августа 2009

Я бы посоветовал взглянуть на Бетвикса и Дигестера. Для Digester есть несколько учебных пособий, которые можно найти в Digister-wiki. Betwixt предоставляет несколько довольно хороших учебных пособий прямо на своем сайте.

В дополнение к этим двум инструментам есть список альтернатив, которые можно найти в разделе «Справочные материалы» http://wiki.apache.org/commons/Digester/WhyUseDigester

0 голосов
/ 04 августа 2009

Было бы проще использовать существующие клиенты и серверы XMPP, а не писать свои собственные вообще.

Если это на самом деле домашняя работа, то я бы предложил написать клиент и сервер, как вы предложили, используя все java, но в качестве сообщения используйте строку. Затем вы можете легко добавить синтаксический анализ строки в / из XML, когда все остальные части работают.

0 голосов
/ 04 августа 2009

Существует нечто, называемое XML RPC. Этот пример в значительной степени показывает, что вы ищете:

http://docstore.mik.ua/orelly/xml/jxml/ch11_02.htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...