Ответ 1
Реализации JAX-RS
Джерси
- Реализация ссылок
- Обычно самый передний край
- Поддерживает истинные асинхронные (т.е. сетевые сокеты и т.д.) соединения через Atmosphere или версию 2.0.
- Поддерживает Spring и стандартные контейнеры для инъекций (например, @Inject).
- Glassfish связывает его.
- Он гораздо более модульный, чем другие проекты JAX-RS.
- У него есть ударник URI Builder
- Не обязательно требует контейнер сервлета.
- Поддержка гризли
- Поддержка Netty (очень рано).
- Поддержка Swagger
- Тип отсутствующего OAuth 2.0. Вам придется использовать другие библиотеки.
- Поддержка нескольких MVC через Просмотр
- Хостинг на java.net(минус, поскольку сайт ужасно медленный время от времени).
- Лицензирование основано на CCDL 1.1 и GPL-v2. Пожалуйста, убедитесь, что вы проверяете лицензирование на Джерси, прежде чем использовать его для коммерческого использования.
https://jersey.github.io/license.html
Resteasy
- Значительная часть вышеупомянутых, но наиболее примечательных поддерживает технологии просмотра (см. HTMLEasy)
- У него есть поддержка асинхронного подключения
- Поддержка кеша
- поддержка EJB (если вы в этом дерьме)
- JBoss связывает его (я думаю)
- Поддержка Netty
- Возможно, лучший Spring интеграция (обработчик MVC).
- Поддержка раннего Swagger
- Дополнительная поддержка безопасности, включая ранняя поддержка OAuth 2.0
Apache Wink (никогда не использовал его)
- Я понятия не имею, почему этот проект существует.
- Предположительно, его высокая производительность сфокусирована.
- У клиента есть клиент, построенный поверх HttpUrlConnection (который является минусом... он должен быть подключаемым, например Spring RestTemplate).
- В основном Wink был разработан в домашних условиях в некоторых корпоративных компаниях, а затем предоставлен Apache.
- Требуется контейнер сервлета.
Restlet
- Очень мощный, но очень сложный
- Предоставляет некоторую низкоуровневую поддержку REST
- Не требуется контейнер сервлета
Apache CXF
- Некоторая интересная поддержка WADL.
- Повторное использование и объединение JAX-RS с JAX-WS
- Поддержка безопасности
- Интеграция w/ Spring хотя и довольно неприятная
- Предполагаемая автогенерация клиентских заглушек
Другие RPC-подобные системы
Очереди сообщений
- RabbitMQ
- ActiveMQ
Асинхронный RPC
- Finagle - из Twitter.
- msgpack-rpc
Мое скромное мнение
Я знаю, что OP запрашивал REST, но если это для внутренней коммуникации, серьезно подумайте об использовании либо очереди сообщений, либо другого асинхронного RPC (Finagle) вместо традиционного REST, если ваши требования соответствуют этим системам.
Если это классический HTTP REST (внешний), я бы выбрал либо RestEasy, либо Джерси, так как основная часть разума попала в эти два проекта.
Также см.: Отладка клиентов для Java?