Реализация Java REST: Джерси против CXF

Как вы думаете, какие преимущества/недостатки между этими двумя библиотеками? Какие из этих двух продуктов лучше всего подходят для производственной среды? Кстати, я буду использовать JSON вместо XML.

Я также хотел бы знать, какая библиотека больше всего поддерживается сообществом, например. учебники, документация.

Ответ 1

Я использовал оба, но для разных целей. CXF отлично поработал для анализа WSDL и создания Java POJO для взаимодействия, поэтому CXF довольно хорош для клиентских WSDL-сервисов. В настоящее время я использую Джерси для реализации на стороне сервера, и я впечатлен простотой работы с сервисами RESTful с использованием Jersey.

Поскольку Джерси в основном посвящена сервисам RESTful, а CXF заключает в основном (все?) с SOAP, я думаю, все сводится к тому, хотите ли вы работать с SOAP или REST и определить лучшие рамки для работы оттуда. Лично я больше в лагере REST, чем SOAP, но мои потребности разные. Должен ли я находиться в ситуации, когда продавец/клиент/компания я пишу услугу для каких-то контрактов, я все равно могу нажать на REST (и эквивалент REST для контрактных сервисов, WADL), но, скорее всего, потребуется реализовать SOAP-сервис, и в этом случае я сначала посмотрю на CXF и все остальное.

Лично Джерси очень хорош для JAX-RS framework, хотя не исключают JASS RESTEasy. Мне нравится обоим, но документация для RESTEasy лучше.

Для CXF документация в порядке, но я столкнулся с несогласованностью в том, как мне нужно было обрабатывать SSL и HTTP-прокси, но в конечном итоге это сработало. CXF действительно предоставляет больше возможностей для этих дополнительных функций, и я бы сказал, что RESTEasy предоставит эквивалентную функциональность для RESTful фреймворков.

Ответ 2

Я только использовал Джерси (с большим удовлетворением), поэтому я не могу дать реальное сравнение. Вещи, которые вы, возможно, захотите рассмотреть:

  • CXF упакован в стек SOAP поддержки, чтобы вы Вес, связанный с SOAP, вы никогда не будете использовать когда вы создаете систему RESTful. (Планируется разделить упаковка, насколько я знаю, хотя)
  • Джерси поставляется с несколькими нестандартные дополнения к JAX-RS, которые очень полезны. Существует также базовая структура клиентской стороны, которая хорошо разработан.
  • [Warning: Бесстыдный плагин вперед (извините)]: Я был работая над расширенным клиентом Джерси которая поощряет использование REST на стороне клиента и (IMHO, по крайней мере) очень естественным для использования. Планируется объявить об этом (или следующая) неделя - если вы заботитесь о клиентская сторона, попробуйте. Лично я считаю, что огромный про-Джерси.

НТН,

Jan

Ответ 3

Вы считали RESTlet? Это мощный пакет для быстрого создания веб-сервисов RESTful. Люди, стоящие за RESTlet, также пишут книгу RESTlet In Action, которая в настоящее время находится в раннем доступе. Главы, которые уже доступны, очень хорошо помогают объяснить REST и детализируют, как вы собираетесь создавать REST api.

Ответ 4

Если вас беспокоит информация о преобразовании решения, разработанного с помощью Джерси для работы на CXF, Глен Мацца опубликовал коллекцию образцов Джерси, перенесенных в Apache CXF на GitHub. Файлы README содержат примечания для каждого образца относительно необходимых изменений.

Ответ 5

Я использовал Apache CXF для JAX-WS и Jersey для JAX-RS, поэтому я не могу комментировать CXF и REST. Было легко настроить пример REST, используя Джерси. Документация была адекватной. Я не использовал RESTEasy, но Джерси выглядит более привлекательным и более свежими.

Хорошей книгой для рекомендаций по внедрению является Поваренная книга веб-служб RESTful.