Сериализация
От: Testus  
Дата: 21.11.09 13:42
Оценка:
У меня задача: на стороне клиента есть некий объект класса, хочу его передать по сети на сервер.
Соответственно сервер написан на Java, а клиенты написаны не на Java. На стороне клиента получаю сериализацию объекта в виде набора байт (обычный).
Хочу десерелизовать на сервера, но вот проблема — стандартный подход:
...
byte buffer = new buffer[1024];
...
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
obj = (SomeSlass) ois.readObject();
...

— не прокатывает так как в буфере нет всей необходимой служебной информации о классе, объект которого был сериализован.

Есть ли какая-нибудь возможность, или возможно другие классы, где на свой "страх и риск" я могу подсунуть только бинарные данные класса и сказать какой это объект? Или самому делать какие нибуть методы типа read/write, но тогда встает вопрос с наследованием и базовыми классами не хочется изобретать велосипед.
Glück auf
Re: Сериализация
От: Blazkowicz Россия  
Дата: 21.11.09 14:19
Оценка:
Здравствуйте, Testus, Вы писали:

T>Соответственно сервер написан на Java, а клиенты написаны не на Java.

А на чем? Протокол которые поддерживают почти все технологии это Web Service. А для бинарной сериализации лучше взять Hessian.
Re: Сериализация
От: and_hom  
Дата: 21.11.09 14:55
Оценка:
рекомендовал бы сериализацию в json — формат читабельный, трафик
потребляет относительно xml небольшой. со стороны java, насколько я
помню, XStream умеет работать с этим форматом. со стороны клиента — "не
на java" — это "на C#"? тогда тоже бес проблем, вроде бы, хотя, не пробовал
Posted via RSDN NNTP Server 2.1 beta
Re: Сериализация
От: Аноним  
Дата: 21.11.09 15:53
Оценка:
Здравствуйте, Testus, Вы писали:

T>У меня задача: на стороне клиента есть некий объект класса, хочу его передать по сети на сервер.

T>Соответственно сервер написан на Java, а клиенты написаны не на Java. На стороне клиента получаю сериализацию объекта в виде набора байт (обычный).
T>Хочу десерелизовать на сервера, но вот проблема — стандартный подход:
T>
T>...
T>byte buffer = new buffer[1024];
T>...
T>ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
T>obj = (SomeSlass) ois.readObject();
T>...
T>

T>- не прокатывает так как в буфере нет всей необходимой служебной информации о классе, объект которого был сериализован.

T>Есть ли какая-нибудь возможность, или возможно другие классы, где на свой "страх и риск" я могу подсунуть только бинарные данные класса и сказать какой это объект? Или самому делать какие нибуть методы типа read/write, но тогда встает вопрос с наследованием и базовыми классами не хочется изобретать велосипед.


GPB твой выбор
Re[2]: Сериализация
От: and_hom  
Дата: 21.11.09 15:59
Оценка:
> GPB твой выбор
а что это? гугл не рассказал
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Сериализация
От: Testus  
Дата: 22.11.09 07:46
Оценка:
Здравствуйте, and_hom, Вы писали:

>> GPB твой выбор

_>а что это? гугл не рассказал

+1 что такое GPB
Glück auf
Re[4]: Сериализация
От: Никитка Украина  
Дата: 22.11.09 11:27
Оценка: 1 (1)
>> > GPB твой выбор
> _>а что это? гугл не рассказал
> +1 что такое GPB

Google Protocol Buffers

http://code.google.com/apis/protocolbuffers/
Posted via RSDN NNTP Server 2.1 beta
Re: Сериализация
От: denis.zhdanov Россия http://denis-zhdanov.blogspot.com/
Дата: 23.11.09 09:19
Оценка:
Здравствуйте, Testus, Вы писали:

T>У меня задача: на стороне клиента есть некий объект класса, хочу его передать по сети на сервер.

T>Соответственно сервер написан на Java, а клиенты написаны не на Java. На стороне клиента получаю сериализацию объекта в виде набора байт (обычный).
T>Хочу десерелизовать на сервера, но вот проблема — стандартный подход:
T>
T>...
T>byte buffer = new buffer[1024];
T>...
T>ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
T>obj = (SomeSlass) ois.readObject();
T>...
T>

T>- не прокатывает так как в буфере нет всей необходимой служебной информации о классе, объект которого был сериализован.

T>Есть ли какая-нибудь возможность, или возможно другие классы, где на свой "страх и риск" я могу подсунуть только бинарные данные класса и сказать какой это объект? Или самому делать какие нибуть методы типа read/write, но тогда встает вопрос с наследованием и базовыми классами не хочется изобретать велосипед.


здесь
http://denis-zhdanov.blogspot.com
Re[2]: Сериализация
От: srggal Украина  
Дата: 24.11.09 13:42
Оценка:
Здравствуйте, and_hom, Вы писали:

_>рекомендовал бы сериализацию в json — формат читабельный, трафик

_>потребляет относительно xml небольшой. со стороны java, насколько я
_>помню, XStream умеет работать с этим форматом. со стороны клиента — "не
_>на java" — это "на C#"? тогда тоже бес проблем, вроде бы, хотя, не пробовал
Как-бы есть google-json хорошая штука
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.