Передача сущности по сети? - PullRequest
0 голосов
/ 19 марта 2011

Я некоторое время изучал сетевые технологии Java.Я использую ObjectInputStream и ObjectOutputStream для ввода-вывода между сокетами.

Возможно ли передать объект или модель с сервера на клиент и наоборот?Как я могу это реализовать?Предполагаю ли я реализовать сущность или модель для сериализации?

Ваш ответ высоко ценится.

Ответы [ 3 ]

1 голос
/ 19 марта 2011

Я не уверен, какую особую вещь вы имеете в виду, обозначая «Капитал-Е Модель и капитал-М»; эти термины не имеют какого-либо фиксированного, привилегированного значения в Java (хотя они могут относиться к определенному API или фреймворку). В общем, если под этими терминами подразумеваются только некоторые конкретные объекты Java, то да, вы можете отправлять любые виды объекты таким образом, и да, они будут необходимы для реализации Serializable. Единственными ограничениями было бы, если бы эти объекты содержали элементы, значения которых не имели бы смысла на другом конце канала - как пути к файлам и т. Д.

Обратите внимание, что если вы отправляете один объект, вы в конечном итоге отправляете все остальные объекты, на которые он также содержит непереходную ссылку.

0 голосов
/ 20 марта 2011

Вам определенно нужно взглянуть на одну из этих двух библиотек.

Google gson: http://code.google.com/p/google-gson/ Преобразует объект Java в JSON и обратно.Преимущество в том, что объект может быть использован или сгенерирован Javascript.Я также использовал это для Java-Java RPC, но это дает вам гибкость, если вы хотите настроить таргетинг на браузеры позже

Буферы протокола Google: http://code.google.com/apis/protocolbuffers/ Это то, что Google использует для RPC.Реализации для Java, C, Python.Если вам нужна производительность и наименьший размер, то это тот вариант, с которым стоит пойти (компромисс: вы не можете легко смотреть на данные для устранения проблем, как вы можете с помощью gson, который генерирует обычный текст JSON).

0 голосов
/ 19 марта 2011

Прежде всего ... зачем отправлять объект через поток ввода-вывода?Что не так с XML?

Однако вы всегда можете отправить / получить объект через поток ввода-вывода, если отправитель может сериализовать объект, а получатель может десериализовать объект.Надеюсь, это поможет

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