Я только что слышал о Apache Wink, и мне было интересно, какие отличия у него были по сравнению с Jersey или JBoss RESTEasy. Что можно сделать в одном, что другие два не могут?
Мы использовали Джерси для некоторых наших внутренних проектов, в основном для простоты, но я не могу понять, что делает эти два других лучше, чем я мог бы переключить. Есть ли у кого-нибудь какие-либо прецеденты, для которых ниша каждая из них заполняется?
https://jersey.github.io/license.html
Я знаю, что OP запрашивал REST, но если это для внутренней коммуникации, серьезно подумайте об использовании либо очереди сообщений, либо другого асинхронного RPC (Finagle) вместо традиционного REST, если ваши требования соответствуют этим системам.
Если это классический HTTP REST (внешний), я бы выбрал либо RestEasy, либо Джерси, так как основная часть разума попала в эти два проекта.
Также см.: Отладка клиентов для Java?
При выборе варианта использования следует иметь в виду: если вы попытаетесь развернуть веб-службу Джерси в JBOSS 7.1, это не сработает. Эта ошибка произойдет:
Only one JAX-RS Application Class allowed
Это связано с тем, что REST Easy поставляется в комплекте с JBOSS в качестве реализации JAX-RS по умолчанию. Таким образом, JBOSS решит, что это реализация, которую вы хотите использовать, и не будет загружать другую реализацию JAX-RS (например, Джерси). Чтобы исправить это, вам нужно добавить следующие строки в файл web.xml:
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.providers</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>resteasy.scan.resources</param-name>
<param-value>false</param-value>
</context-param>
Один из моих любимых Jersey расширений - видимые. Записи позволяют легко привязывать ваши данные к странице JSP для реализации настоящей архитектуры Model-View-Controller (MVC):
Если вы собираетесь использовать JBoss 7.x, вы должны использовать RestEasy, потому что он интегрирован в JBoss. Чтобы использовать Джерси с JBoss 7.x, вам нужно отключить RestEasy, и это сложно!