У меня задача: на стороне клиента есть некий объект класса, хочу его передать по сети на сервер.
Соответственно сервер написан на Java, а клиенты написаны не на Java. На стороне клиента получаю сериализацию объекта в виде набора байт (обычный).
Хочу десерелизовать на сервера, но вот проблема — стандартный подход:
...
byte buffer = new buffer[1024];
...
ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(buffer));
obj = (SomeSlass) ois.readObject();
...
— не прокатывает так как в буфере нет всей необходимой служебной информации о классе, объект которого был сериализован.
Есть ли какая-нибудь возможность, или возможно другие классы, где на свой "страх и риск" я могу подсунуть
только бинарные данные класса и сказать какой это объект? Или самому делать какие нибуть методы типа read/write, но тогда встает вопрос с наследованием и базовыми классами

не хочется изобретать велосипед.
рекомендовал бы сериализацию в json — формат читабельный, трафик
потребляет относительно xml небольшой. со стороны java, насколько я
помню, XStream умеет работать с этим форматом. со стороны клиента — "не
на java" — это "на C#"? тогда тоже бес проблем, вроде бы, хотя, не пробовал
Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, 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 твой выбор
> GPB твой выбор
а что это? гугл не рассказал
Posted via RSDN NNTP Server 2.1 beta
>> > GPB твой выбор
> _>а что это? гугл не рассказал
> +1 что такое GPB
Google Protocol Buffers
http://code.google.com/apis/protocolbuffers/Posted via RSDN NNTP Server 2.1 beta
Здравствуйте, 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, но тогда встает вопрос с наследованием и базовыми классами
не хочется изобретать велосипед.
здесь
Здравствуйте, and_hom, Вы писали:
_>рекомендовал бы сериализацию в json — формат читабельный, трафик
_>потребляет относительно xml небольшой. со стороны java, насколько я
_>помню, XStream умеет работать с этим форматом. со стороны клиента — "не
_>на java" — это "на C#"? тогда тоже бес проблем, вроде бы, хотя, не пробовал
Как-бы есть
google-json хорошая штука