Реалізація Java REST: Джерсі проти CXF [закрито]


75

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

Я також хотів би знати, яка бібліотека найбільше підтримується спільнотою, наприклад, підручники, документація.



Подібне запитання тут stackoverflow.com/questions/80799/jax-rs-frameworks
Кірбі

Відповіді:


48

Я використовував обидва, але для різних цілей. CXF чудово працював для аналізу WSDL та створення Java POJO для взаємодії, тому CXF досить хороший для клієнтських служб WSDL. Зараз я використовую Jersey для реалізації на стороні сервера, і я вражений простотою запуску з RESTful-сервісами за допомогою Jersey.

Оскільки Джерсі в основному присвячений послугам RESTful, а CXF здебільшого (все?) Займається SOAP, я думаю, що це зводиться до того, чи хочете ви працювати з SOAP чи REST, і звідти визначити найкращі рамки для роботи. Особисто я перебуваю в таборі REST, ніж SOAP, але мої потреби інші. Якщо я потрапляю в ситуацію, коли постачальник / замовник / компанія, для якої я пишу послугу, потребує якогось договору, я все одно можу наполягати на REST (і еквіваленті REST для послуг на основі контракту, WADL ), але, швидше за все, потрібно буде виконати послуга SOAP, і в цьому випадку я б подивився на CXF першим, а на все інше другим.

Особисто Джерсі дуже добре підходить для фреймворку JAX-RS, хоча не виключайте RESTEasy від JBoss. Мені подобається і те, і інше, але документація для RESTEasy є кращою.

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


13
CXF теж робить REST. Дивіться тут: cxf.apache.org/docs/jax-rs.html
HDave

1
Apache CXF пропонує три методології використання REST: JAX-RS, JAX-WS та прив'язку HTTP.
hotshot309

4

Я використовував лише Джерсі (із великим задоволенням), тому не можу дати реального порівняння. Речі, які ви можете розглянути:

  • CXF упакований з підтримкою стеку SOAP, тому ви приносите багато ваги, пов'язаної з SOAP, яку ви ніколи не будете використовувати, коли будуєте систему RESTful. (Однак, наскільки мені відомо, є плани розділити упаковку)
  • Джерсі постачається з рядом нестандартних доповнень до JAX-RS, які дуже корисні. Існує також основний фреймворк на стороні клієнта, який розроблений досить добре.
  • [Попередження: Безсоромна розетка вперед (вибачте)]: Я працював над розширеною структурою на стороні клієнта в Джерсі, яка заохочує правильне використання REST на стороні клієнта і є (принаймні IMHO) дуже природною. Планується оголосити про це цього (або наступного) тижня - якщо ви багато дбаєте про клієнтську сторону, спробуйте. Особисто я вважаю це величезним аргументом за Джерсі.

HTH,

Січня


Щодо вашої безсоромної вилки, де я можу знайти якусь документацію / інформацію / тощо. на ньому, що я міг би дати йому кружляти?
Нік Клауер,

Нік, я просто набираю вступну публікацію в блозі. Пол Сандоз планує внести остаточні зміни до сховища сьогодні вранці. Щойно це буде зроблено, ми станемо публічними. Блог ви знайдете за адресою nordsc.com/blog (сподіваємось сьогодні вдень).
Ян Альгерміссен,

Нік, ось ти :-) | Клієнтська структура Джерсі: nordsc.com/blog/?p=439
Ян

6
CXF має окремі артефакти REST та SOAP Maven, тому, якщо ви робите CXF REST, ви не отримуєте всього.
HDзберегти

3

Ви розглядали RESTlet ? Це потужний пакет для швидкого створення RESTful веб-сервісів. Люди, які стоять за RESTlet, також пишуть книгу RESTlet In Action, яка наразі перебуває на початку. Розділи, які вже доступні, дуже добре пояснюють REST та деталізують, як ви розробляєте REST api.


2

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


посилання порушено, чи можете ви оновити його, якщо це можливо
Анкур Лорія,

@AnkurLoriya Я спробував. Глен перемістив свій щоденник на web-gmazza.rhcloud.com , але я не міг там знайти цю статтю. Я виправлю відповідь.
Девід Дж. Лішевський,

1

Я використовував Apache CXF для JAX-WS та Джерсі для JAX-RS, тому я не можу коментувати CXF та REST. Було легко встановити приклад REST, використовуючи Джерсі. Документація була адекватною. Я не використовував RESTEasy, але Джерсі, схоже, має більше тяги та останні оновлення.

Хороша книга для настанов щодо впровадження - Кулінарна книга RESTful Web Services.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.