Каков наилучший Java-способ создания веб-служб JSON / XML REST, аналогичный WCF? - PullRequest
6 голосов
/ 19 апреля 2009

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

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

Джерси один?

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

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

Есть какие-нибудь идеи?

Ответы [ 4 ]

3 голосов
/ 19 апреля 2009

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

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

2 голосов
/ 12 января 2010

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

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

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

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

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

0 голосов
/ 14 июня 2009

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

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

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

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

0 голосов
/ 24 апреля 2009

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

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

...