Мой коллега упоминает, почему мы используем 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.
Спасибо, что указали на Wink.
FWIW, который мы используем в Джерси, наполнен функциями (например, WADL, неявные представления, поддержка XML / JSON / Atom), имеет большое и энергичное сообщество разработчиков и имеет отличный весенняя интеграция.
Если вы используете JBoss / SEAM, вы можете обнаружить, что RESTeasy интегрируется немного лучше, но если вы используете Spring для внедрения зависимостей, то Jersey кажется самой простой, самой популярной, активной и функциональной реализацией.
Остерегаться. Jersey 2.0 существенно хуже 1.0 с точки зрения поддержки сообщества и функций, которые раньше работали в 1.0, но были удалены в 2.0.
Не могли бы вы рассказать, каких функций вам не хватает?
Мы использовали Джерси, это впечатляет .... Мои требования скромны и просты, поэтому я очень счастлив быть Джерсиетом !! @Gili, не могли бы вы упомянуть функции, которые вам не хватает ... !!
@varra, год спустя я уже не помню технических деталей, но отсутствие поддержки сообщества и медленная разработка Oracle по-прежнему остаются серьезной проблемой.
@Gili, я вижу, что ты там делал: softwareengineering.stackexchange.com/questions/155467/…
Моя команда и я широко используем Restlet, но не его функции JAX-RS. Могу сказать вам, что я был очень впечатлен разработчиками и сообществом Restlet; они очень активны, вовлечены, отзывчивы и привержены стабильной, действенной, надежной и действенной структуре. Извините, я не могу напрямую ответить на ваш основной интерес, но я подумал, что мой опыт работы с Restlet может вам понравиться.
Похоже, что существует 4 достойных реализации JAX-RS, так что вы, вероятно, согласны с любой из них. Как бы то ни было, я нахожу Джерси (1.0.2) действительно хорошим. Мои потребности довольно скромные, простое бэкенд-обслуживание, уход за сантехникой и так далее. И этот Джерси неплохо справляется.
Выяснилось, что с Apache Wink очень легко работать, он поддерживает JAX-RS и имеет множество функций, выходящих за рамки стандартного.
Рестлет имеет обширный список расширений для Spring, WADL, XML, JSON и многих других, включая расширение для JAX-RS API.
Это также единственный фреймворк доступно в шести последовательных редакциях:
Его основные преимущества:
API JAX-RS может быть хорошим выбором, если вы ограничены API-интерфейсами, утвержденными JCP (тогда не используйте Spring или любое расширение проектов JAX-RS, таких как Jersey и RESTeasy!), Но в остальном Restlet является наиболее зрелой структурой ( изначально выпущен в 2005 году), а в версии 2.0 он предоставит вам все преимущества аннотаций в сочетании с мощной и расширяемой структурой, ориентированной на классы.
Для более длинного список функций, пожалуйста, проверьте эту страницу.
С наилучшими пожеланиями, Жером Лувель
Рестлет ~ Основатель и ведущий разработчик ~ http://www.restlet.org
Не то чтобы я полностью убежден, что "четыре ... издания" - это плюс, но вы продолжаете перечислять пять, что немного непоследовательно :)
Вы правы, на самом деле у нас сейчас 6 редакций, поэтому текст поправляю :)
Я бы не использовал фреймворк. Только тот, который идет в комплекте с вашим сервером приложений. Если вы используете специфику одного фреймворка, вы потеряете переносимость и будете в аду, что если поставщик сервера приложений включит другую версию вашего любимого фреймворка. Я буду придерживаться jax-ws.
см. также: stackoverflow.com/q/3459795/1725096