Фреймворки JAX-RS

Я немного поработал с эталонной реализацией JAX-RS (Джерси). Я знаю как минимум два других фреймворка (Restlet и Apache CXF).

Мой вопрос: проводил ли кто-нибудь сравнение между этими фреймворками, и если да, то какой фреймворк вы бы порекомендовали и почему?

см. также: stackoverflow.com/q/3459795/1725096

Jens Piegsa 27.04.2015 12:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
50
1
38 844
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Мой коллега упоминает, почему мы используем RESTeasy для нашего текущего проекта в Веб-сервисы RESTful в Java EE с RESTeasy (JAX-RS):

Its reference implementation, Jersey, was not chosen because we had trouble integrating it well with EJB3 and Seam 2.0.

We are using the RESTeasy implementation of JAX-RS, because we had no trouble integrating it with our EJBs and Seam. It also has sufficient documentation.

There is another implementation from Apache, but I haven’t tried it because it uses an older version of JAX-RS.

Finally there is yet another framework for RESTful web services for Java called Restlet but we did not favour it because at the time of this writing, it is using a custom architecture, even though proper JAX-RS support is in the works.

Apache CXF (cxf.apache.org) имеет JAX-RS, но есть также проект Apache Incubator, совместимый с JAX-RS, под названием Apache Wink (incubator.apache.org/wink), который, в отличие от CXF, ориентирован только на JAX-RS.

Sam Merrell 13.08.2009 02:56

Спасибо, что указали на Wink.

Luke 15.01.2010 13:36
2017/04/25 - Apache Wink больше не работает.
Gerold Broser 06.10.2020 00:38
Ответ принят как подходящий

FWIW, который мы используем в Джерси, наполнен функциями (например, WADL, неявные представления, поддержка XML / JSON / Atom), имеет большое и энергичное сообщество разработчиков и имеет отличный весенняя интеграция.

Если вы используете JBoss / SEAM, вы можете обнаружить, что RESTeasy интегрируется немного лучше, но если вы используете Spring для внедрения зависимостей, то Jersey кажется самой простой, самой популярной, активной и функциональной реализацией.

Остерегаться. Jersey 2.0 существенно хуже 1.0 с точки зрения поддержки сообщества и функций, которые раньше работали в 1.0, но были удалены в 2.0.

Gili 06.12.2013 08:25

Не могли бы вы рассказать, каких функций вам не хватает?

Rick-777 13.06.2014 15:05

Мы использовали Джерси, это впечатляет .... Мои требования скромны и просты, поэтому я очень счастлив быть Джерсиетом !! @Gili, не могли бы вы упомянуть функции, которые вам не хватает ... !!

varra 13.03.2015 09:59

@varra, год спустя я уже не помню технических деталей, но отсутствие поддержки сообщества и медленная разработка Oracle по-прежнему остаются серьезной проблемой.

Gili 14.03.2015 00:31

@Gili, я вижу, что ты там делал: softwareengineering.stackexchange.com/questions/155467/…

Sebastien 09.06.2017 17:45

Моя команда и я широко используем Restlet, но не его функции JAX-RS. Могу сказать вам, что я был очень впечатлен разработчиками и сообществом Restlet; они очень активны, вовлечены, отзывчивы и привержены стабильной, действенной, надежной и действенной структуре. Извините, я не могу напрямую ответить на ваш основной интерес, но я подумал, что мой опыт работы с Restlet может вам понравиться.

Похоже, что существует 4 достойных реализации JAX-RS, так что вы, вероятно, согласны с любой из них. Как бы то ни было, я нахожу Джерси (1.0.2) действительно хорошим. Мои потребности довольно скромные, простое бэкенд-обслуживание, уход за сантехникой и так далее. И этот Джерси неплохо справляется.

Выяснилось, что с Apache Wink очень легко работать, он поддерживает JAX-RS и имеет множество функций, выходящих за рамки стандартного.

+1 за подмигивание, что мне больше всего нравится в этом фреймворке, так это простая интеграция с фреймворком Spring

LiorH 08.02.2010 20:52
2017/04/25 - Apache Wink больше не работает.
Gerold Broser 06.10.2020 00:36

Рестлет имеет обширный список расширений для Spring, WADL, XML, JSON и многих других, включая расширение для JAX-RS API.

Это также единственный фреймворк доступно в шести последовательных редакциях:

  • Java SE
  • Java EE
  • Google Web Toolkit
  • Google AppEngine
  • Android
  • OSGi среды

Его основные преимущества:

  • полностью симметричный клиентский и серверный API, когда JAX-RS был разработан для обработки на стороне сервера
  • соединители для других протоколов, кроме HTTP (сопоставление с семантикой HTTP), когда JAX-RS - только HTTP
  • гораздо более широкий спектр функций, включая полный контроль маршрутизации URI через Restlet API (но при необходимости может интегрироваться с сервлетом)
  • полная поддержка NIO

API JAX-RS может быть хорошим выбором, если вы ограничены API-интерфейсами, утвержденными JCP (тогда не используйте Spring или любое расширение проектов JAX-RS, таких как Jersey и RESTeasy!), Но в остальном Restlet является наиболее зрелой структурой ( изначально выпущен в 2005 году), а в версии 2.0 он предоставит вам все преимущества аннотаций в сочетании с мощной и расширяемой структурой, ориентированной на классы.

Для более длинного список функций, пожалуйста, проверьте эту страницу.

С наилучшими пожеланиями, Жером Лувель

Рестлет ~ Основатель и ведущий разработчик ~ http://www.restlet.org

Не то чтобы я полностью убежден, что "четыре ... издания" - это плюс, но вы продолжаете перечислять пять, что немного непоследовательно :)

Rob Oxspring 01.12.2009 13:59

Вы правы, на самом деле у нас сейчас 6 редакций, поэтому текст поправляю :)

Jerome Louvel 12.07.2012 11:15

Я бы не использовал фреймворк. Только тот, который идет в комплекте с вашим сервером приложений. Если вы используете специфику одного фреймворка, вы потеряете переносимость и будете в аду, что если поставщик сервера приложений включит другую версию вашего любимого фреймворка. Я буду придерживаться jax-ws.

Другие вопросы по теме