Рамки JAX-RS

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

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

Ответ 1

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

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

Ответ 2

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

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

  • Java SE
  • Java EE
  • Инструмент Google Web Toolkit
  • Google AppEngine
  • Android
  • среды OSGi

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

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

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

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

С уважением, Джером Лувел

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

Ответ 3

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

Ответ 4

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

Его эталонная реализация, Джерси, не была выбрана, потому что у нас были проблемы с ее интеграцией с EJB3 и Seam 2.0.

Мы используем реализацию RESTeasy JAX-RS, потому что у нас не было проблем с ее интеграцией с нашими EJB и Seam. Он также имеет достаточную документацию.

Существует еще одна реализация от Apache, но я не пробовал ее, потому что она использует более старую версию JAX-RS.

Наконец, существует еще одна инфраструктура для веб-служб RESTful для Java под названием Restlet, но мы не одобряли ее, потому что на момент написания этой статьи она использует пользовательскую архитектуру, даже если в ней работает надлежащая поддержка JAX-RS.

Ответ 5

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

Ответ 6

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

Ответ 7

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