Интеграция GWT и Джерси

Я создал приложение, использующее ExtJS, которое через запросы Ajax подключается к сервису RESTful в Джерси. В этом приложении все работает хорошо, но теперь я хочу перенести его на ExtGWT.

Поскольку в ExtGWT уже есть сервлеты RPC для обработки взаимодействия клиент-сервер, где Джерси может вписаться в этот сценарий? Должен ли я больше не использовать его и вместо этого подключаться от сервлетов GWT напрямую к методам службы?

Если я хотел бы использовать Джерси, есть ли способ обеспечить такую ​​же поддержку сериализации / десериализации, как и в GWT RPC? - Я полагаю, что в этом сценарии мне больше не следует использовать GWT's RPC.

Я бы предпочел Джерси, потому что он имеет реализацию на основе REST, а RPC GWT, я думаю, нет. В будущем я также планирую получить доступ к службам RESTful Джерси из приложений для Android / iOS, и RPC GWT не очень хорошо подходит для этого сценария.

Спасибо!


person Dan L.    schedule 17.01.2011    source источник


Ответы (4)


Вы правы, что не можете использовать GWT RPC с REST. AFAIK, ExtGWT (GXT) не имеет встроенной поддержки для получения данных REST; Я могу ошибаться, так как не использовал GXT больше года.

Что касается использования GWT RPC, очень удобно иметь возможность повторно использовать ваши модели как на сервере, так и на клиенте. Однако ваши модели не могут быть слишком сложными (их нужно будет сериализовать в JSON); в противном случае вам нужно будет создать отдельные DTO для ваших моделей. Дополнительную информацию можно найти в документации GWT RPC: GWT RPC.

Если бы это был я, я бы использовал и REST, и GWT RPC. Я бы использовал GWT RPC для связи с моим клиентским кодом GWT и Jersey / REST для связи с внешними приложениями.

person JP Richardson    schedule 17.01.2011
comment
Спасибо! Я также думал о возможности использовать их оба. С другой стороны, я только что нашел несколько библиотек (см. Следующий комментарий), в которых говорится, что они обеспечивают поддержку REST для GWT, но я не уверен, насколько они стабильны и насколько легко с ними работать. Они ничего не говорят о Джерси, поэтому я не знаю, как можно было бы провести интеграцию и возможно ли это. - person Dan L.; 17.01.2011
comment
Итак, я предполагаю, что даже если GWT RPC не основан на REST (который является широко распространенным стандартом, который я бы хотел использовать из GWT), он по-прежнему является стандартом Google, который, я думаю, стабилен (без ошибок и т. Д.) И его легко работать с сериализацией / десериализацией любого типа java beans. По сравнению с только что выпущенными продуктами, такими как RestyGWT, я считаю, что GWT RPC является гораздо более надежной и более перспективной альтернативой. Что вы думаете? - person Dan L.; 17.01.2011
comment
Что касается restygwt, я им не пользовался, поэтому не могу его комментировать. Однако GWT-Rest выглядит мертвым. Что касается GWT-RPC, ориентированного на будущее, в мире технологий я не уверен, что что-то можно сказать о будущем. Однако на данный момент он прост в использовании и поддерживается Google. Так что я предполагаю, что это будет какое-то время. У вас также есть возможность использовать RequestFactory. code.google.com/webtoolkit/doc/latest/ Однако RequestFactory рекомендует писать много кода. например DTO и модели. - person JP Richardson; 17.01.2011
comment
Спасибо за поиск решения моей проблемы, я ценю это - попробую restygwt, может, из этого выйдет что-то хорошее. - person Dan L.; 17.01.2011

Загляните в проект RestyGWT. Это сделает вызов ресурсов JAXRS JSON таким же простым, как использование GWT-RPC. Кроме того, вы, как правило, можете повторно использовать те же DTO ответа на запрос со стороны сервера на стороне клиента.

person Hiram Chirino    schedule 12.02.2011

Мы написали приложение (журнал оценок), которое использует GWT / GXT на стороне клиента и обменивается данными через JAX-RS (Джерси) на стороне сервера:

https://source.sakaiproject.org/contrib/gradebook2/trunk/

Первоначально мы использовали GWT-RPC, но затем решили использовать REST / JSON. У обоих способов общения есть свои ЗА / МИНУСЫ. Здесь есть некоторая информация о них обоих: code.google.com/webtoolkit/doc/latest/tutorial/clientserver.html

person tamsler    schedule 01.02.2011

Вы можете плавно комбинировать Jersey (на стороне сервера) с RestyGWT (на стороне клиента). См. http://blog.javaforge.net/post/30469901979/gwt-rest для получения дополнительной информации.

person mk_    schedule 02.09.2012