BlazeDs сериализация объектов Java - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть несколько классов Java, которые реализуют сериализацию, и соответствующие объекты AS (самостоятельно сгенерированные GAS), которые реализуют IExternalizable.

Нет проблем при получении объектов с сервера, но когда я пытаюсь отправить объекты на сервер - выдается исключение:

[BlazeDS]Class 'xxx' must implement java.io.Externalizable to receive client 
 IExternalizable instances. flex.messaging.io.SerializationException: Class 'xxx' must  
implement java.io.Externalizable to receive client IExternalizable instances.

Неужели я должен реализовать Externalizable для отправки объектов на сервер Java?!

Ответы [ 2 ]

1 голос
/ 13 декабря 2011

На самом деле мне не нужно реализовывать Externalizable и даже не Serializable.Вместо этого я просто должен указать на стороне flex, что это удаленный класс с псевдонимом, указывающим на полный путь к классу java.Я также должен убедиться, что имена свойств (или методы получения и установки) равны именам свойств объекта Java.Наконец, я должен убедиться, что типы объектов / свойств хорошо сопоставлены или преобразованы (числовые объекты Java в Number во Flex и т. Д.).

0 голосов
/ 14 ноября 2011

Вы должны реализовать Externalizable.

См. http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/WSc3ff6d0ea77859461172e0811f00f6eab8-7ffdUpdate.html

Использование настраиваемой сериализации между ActionScript и Java

Если стандартные механизмы сериализации и десериализации данных между ActionScript на клиенте и Java на сервере не удовлетворяют вашим потребностям, вы можете написать собственную схему сериализации. Вы реализуете интерфейс flash.utils.IExternalizable на основе ActionScript на клиенте и соответствующий интерфейс java.io.Externalizable на основе Java на сервере.

...