Ответ 1
Сначала я займусь вопросом
"JSR311 - это запрос спецификации. Это означает, что он должен быть документом. Почему же это банка?"
За исключением последнего (jersey-core
), все эти банки являются "спецификационными" банками. Спецификации JAX-RS (а также многие другие Java) определяют контракты (или интерфейсы), которые реализаторы должны реализовать указанное поведение для.
Таким образом, в основном все классы, указанные в спецификации, должны быть в банке как контракты. Конечные пользователи банки могут использовать их для контрактов. но реализации нет. Для запуска приложения требуется фактическая реализация, хотя для API-интерфейса спецификации API достаточно компиляции полного JAX-RS-совместимого приложения.
Например, если у нас есть один из этих API-интерфейсов API в пути к классам, мы можем авторизовать все приложение JAX-RS и скомпилировать его, но для его запуска, если у нас нет реальной реализации, мы необходимо развернуть сервер, который имеет фактическую реализацию этой версии спецификации, например JBoss или Glassfish
-
jaxrs-api - это упаковка RESTeasy. Это не официальная спецификация, но она придерживается специальных контрактов. RESTeasy использует эту банку для всей спецификации, т.е. 1.x - current. Несмотря на то, что банка меняет внутренние элементы, чтобы придерживаться разных версий JAX-RS.
-
jsr311-api. Это официальная спецификация для JAX-RS 1.x.
-
javax.ws.rs-api. Это официальная спецификация для JAX-RS 2.x.
-
jersey-core. Это частичная реализация спецификации. Остальная часть реализации содержится внутри других банок Джерси. Обратите внимание, что в более ранних версиях Джерси они фактически упаковали JAX-RS спецификации API в эту банку. Только после этого он начал использовать официальные спецификации.
Другие ресурсы
- API Java для RESTful Services (JAX-RS), чтобы прочитать подробности о различных версиях спецификаций.
- Полная реализация для распространения RESTeasy. RESTeasy 3.x, если реализация JAX-RS 2.x и идентификатор RESTeast 2.x/1.x для линии JAX-RS 1.x.
- Полное распространение реализации Джерси. Вы можете найти реализацию JAX-RS 2.x в "Джерси JAX-RS 2.0 RI bundle" в верхней части страницы. Также в нижней части ссылки на распределение линии Джерси 1.x, которое придерживается спецификации JAX-RS 1.x.
Также обратите внимание, что, хотя разные реализации соответствуют спецификации, каждая реализация имеет свой собственный набор дополнительных функций. Чтобы узнать больше, вы должны ознакомиться с документацией о различных реализациях. Три наиболее популярные версии: Jersey, RESTeasy и CXF