RemoteObject в среде BlazeDS: Сериализация объектов из классов, сгенерированных JAXB/XJC

Я разрабатываю веб-приложение с бэкэндом Java и интерфейсом Flash (чистый ActionScript), используя BlazeDS.

Я использую материал RemoteObject для отправки объекты, используя пользовательскую сериализацию, где мне нужно реализовать интерфейсы Externalizable (Java) и IExternalizable (AS). Пока это работает нормально.

Но теперь мне нужно отправить объекты из Java во Flash, классы которых сгенерированы с помощью JAXB/XJC. Конечно, эти сгенерированные классы Java не реализуют интерфейс Externalizable, поэтому кажется, что я не могу использовать здесь свой подход.

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

Кто-нибудь знает, как решить эту проблему?


person Morrandir    schedule 10.05.2011    source источник
comment
JAXB плагин Inheritance позволяет сгенерированным классам реализовывать интерфейсы, просто добавляя реализацию NameOfInterface в определение класса. Для реализации необходимых методов необходимо разработать еще один плагин.   -  person Morrandir    schedule 11.05.2011
comment
В настоящее время я пытаюсь разработать для этого плагин JAXB. Это не кажется таким неприятным, как я думал раньше.   -  person Morrandir    schedule 12.05.2011


Ответы (2)


Пара вариантов:

  • создайте набор объектов поверх ваших сгенерированных JAXB классов. Я бы выбрал этот вариант.
  • создайте прокси поверх ваших сгенерированных JAXB классов, которые будут соответственно сериализовать/десериализовать каждый объект. Если ваши объекты реализуют интерфейс Externalizable, вы можете использовать Dynamic Proxy API из Java, нет необходимости в динамической генерации кода.
  • изменить распределение blazed. Я бы воздержался от этого, но это выполнимо.
person Cornel Creanga    schedule 11.05.2011
comment
Разве ваше первое предложение не означало бы снова реализовать классы, сгенерированные с помощью JAXB? И на самом деле я не очень понимаю разницу между вашим первым и вторым предложением. - person Morrandir; 12.05.2011

Наконец-то я разработал плагин JAXB/XJC. (Если кому-то интересно, просто свяжитесь со мной.) Теперь работает нормально.

person Morrandir    schedule 17.05.2011