Как стать автором
Обновить

Комментарии 6

Спасибо за новость. Давно ждал обновления именно из-за Super Dev режима. В текущем виде отладка более менее тяжелого GWT приложения стоит кучу времени и нервов из-за неторопливости и неповоротливости Dev режима.

Интересно, запустится ли новый режим при отладке на external сервере.
Я вижу, Comet так и не прикрутили :(

Основной бич GWT — это сериализация POJO-структур. Сделана она отвратительна, а точнее не сделана вообще. GWT-RPC в счет не берем, поскольку он предлагает сугубо внутреннюю имплементацию служащую лишь для вызовов. Поэтому ни клонировать, ни «послать-как-строку» при помощи него нельзя. И что странно, до сих пор практически нет нормальных библиотек, делающих простой маршаллинг/демаршаллинг объектов GWT.

Всем, кому знакома проблема, рекомендую фреймворк JBoss Errai.
А RequestFactory чем не подходит?
На Errai сейчас как раз собираюсь посмотреть. Судя по всему плюшек там побольше. Взять хотя бы встроенный Comet.
RequestFactory служит для т.н. connected-структур — расшареного графа объектов между сервером и клиентом. Это немного не то. Мне нужна была простая сериализация объектов в строку и обратно, причем работающая одинаково как на клиенте, так и на сервере. Со строкой уже можно много что делать: гонять ее туда-сюда по comet-у или вебсокету, засовывать как параметр в GET или POST, использовать ее в нативном JavaScript, сохранять в cookie или persistence storage, и даже передавать между окнами.

Вчера я, наконец, решил эту проблему. Ничего не оставалось как сесть, и написать свою библиотеку. Сегодня только залил. Вот, может кому и пригодится: code.google.com/p/gwt-streamer/
А AutoBean тоже был не в тему? Он справляется с описанными вами задачами
AutoBean не работает с полями, а вместо этого делает враперы. У меня достаточно большая модель, и постоянно растет. Прописывать каждый класс в Factory накладно. К тому же он не решает проблему с десериализацией объектов.
AutoBean<Person> bean = AutoBeanCodex.decode(factory, Person.class, json);
Чтобы десериализовать объект я должен сначала распознать его класс. А для этого нужно его предварительно записать в какую-нибудь хеш-таблицу: Class.forName( «Person» ) в GWT не работает.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации