2009-04-19 13 views
6

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

Я знаю, что Spring 3.0 подходит, но это еще не сделано - не повезло.

Является ли Джерси одним?

Мое приложение размещено Tomcat, использует Spring, Jettison и XStream.

Я хотел бы использовать пакет с открытым исходным кодом, который позволит мне иметь аналогичный опыт разработки, такой как WCF.NET, где я могу объявить шаблоны Url, отобразить GET/POST и получить вывод либо в формате XML, либо в формате XML JSON. Принятая полезная нагрузка также должна быть XML или JSON.

Есть идеи?

ответ

3

Джерси, RESTEasy и Restlet все претендуют на то, что вы просите. Я только попробовал Restlet, и я подумал, что это довольно неприятно.

Весна 3 еще не достигла финального релиза, но сборка M2 кажется довольно прочной, и там есть REST. Если бы я строил новый веб-сайт REST, я бы рискнул с M2.

+0

Как вы думаете, каковы сроки релиза Spring 3.0? – IgorM

+0

M3 должен был выйти в прошлом месяце, но пока не появился. RC1 ожидается в июне, я думаю, поэтому, надеюсь, окончательный выпуск 3.0 будет Q3 в этом году. – skaffman

0

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

Я бы не стал ждать Spring-WS-thing - Джерси хорошо, и я не знаю, какие преимущества есть для альтернативы Spring, помимо «Весеннего бренда». Мне JAX-RS (этот джерси реализует) - очень хороший пример выбора и использования лучших компонентов, реализующих открытые API; Джерси работает (помимо всего прочего) с любым контейнером сервлетов, может использовать лучшие синтаксические анализаторы XML/JSON/etc, использовать подключаемую проверку (bean validation api) и т. Д. То же самое должно быть справедливо и для других реализаций JAX-RS (например, Resteasy).

0

Я использовал и зафиксировал некоторые исправления для CXF. Он поддерживает JAX-RS и полностью настраивается с пружиной. Там хороший учебник здесь:

http://cwiki.apache.org/CXF20DOC/jax-rs.html

CXF является проектом Apache и, как JAX-RS является стандартом вы не должны иметь никаких проблем, удаляясь от него, если у вас есть какие-либо трудности.

Надеюсь, это поможет.

2

Я пробовал с Restlet, RestEasy, Jersey, CXF, Spring. Вот мои отзывы:

  1. Restlet: Вид отвратительный с собственным набором аннотаций. И мало смущает. Не могу винить много, хотя они смотрели на реализацию этого еще до того, как был JAX-RS.

  2. RestEasy/Jersey/CXF: Так же легко, как и его название. Просто и прямо, чтобы начать работать над ним. Хорошая часть для этих 3-х рамок состоит в том, что, поскольку они совместимы с JAX-RS, в любое время в будущем они могут быстро вернуться к такой другой совместимой с JAX-RS каркасом, если она лучше или лучше подходит для ваших потребностей.

  3. Весна: Spring 3 начали поддерживать API REST. Но сделайте не то, что это НЕ соответствует JAX-RS, по той же причине, что и для Restlet.

    Так что я бы выбрал только из RestEasy/Jersey/CXF.