GWT Atmosphere + RequestFactory - PullRequest
       16

GWT Atmosphere + RequestFactory

3 голосов
/ 26 марта 2012

Я хотел бы произвести следующее поведение:

Пользователь в браузере сохраняет некоторую сущность.После сохранения объекта на стороне сервера он генерирует уведомление и должен уведомить всех других клиентов посредством Atmosphere с обновленным экземпляром объекта.

Итак, проблема в как я могу протолкнуть объект POJO через интерфейс Atmosphere ?Последний поддерживает Serializable типы для передачи по проводам, тогда как RequestFactory имеет другой механизм сериализации.

Поэтому мне нужно преобразовать сущность POJO в autobean, как это делается с помощью RF и отправлять клиенту.Кто-нибудь знает, как это можно сделать?

1 Ответ

7 голосов
/ 26 марта 2012

Вы можете просто использовать создание AutoBeans и использовать их вместо POJO в вашем клиентском коде. AutoBeans можно легко сериализовать в / из JSON в GWT, а JSON можно передавать. Вот что я делаю в своем GWT-приложении на основе веб-сокетов.

На сервере вы можете создать ту же фабрику AutoBean, которую вы используете на клиенте. Вместо GWT.create мы используем AutoBeanFactorySource:

MyDataFactory factory = AutoBeanFactorySource.create(MyDataFactory.class)
AutoBean<MyData> myDataAutoBean = factory.myData();
MyData data = myDataAutoBean.as();
data.setValue(1); // call all kinds of setters

// to converto AutoBean to JSON
String json = AutoBeanCodex.encode(myDataAutoBean).getPayload();

На стороне клиента мы используем AutoBeanCodex для декодирования JSON в AutoBean

...