Какая разница между Джерси и jax-rs


95

Я действительно не могу понять, что такое джерси на самом деле ..

Что я знаю, так это то, что Jax-RS - это API для создания веб-сервисов REST и трикотажа? Я получил некоторую информацию, и все говорят одно и то же: «Джерси - это реализация Jax-RS». Но что это значит?

Если jax-rs - это API, зачем нам jersey для создания веб-сервиса отдыха? Джерси - это еще пара библиотек для нацеливания с помощью jax-rs? если да, то jax-rs - это неполный API?


13
Джерси в реализации этого JAX-RS спецификации
Brian Roach

1
Джерси - это просто интерфейс для более простого использования JAX-rs. JAX-RS не предоставляет сервлет, но Джерси предоставляет. Джерси предоставляет библиотеку для реализации веб-сервисов Restful в контейнере сервлетов Java, Джерси предоставляет реализацию сервлета, которая сканирует предопределенные классы для идентификации ресурсов RESTful. В файле конфигурации web.xml зарегистрируйте этот сервлет для своего веб-приложения.
taymedee 03

1
JAX-RS - это спецификация (которая в основном говорит, что реализовать / следовать), а Jersey - это реализация (что означает, как эти спецификации должны быть реализованы). У нас может быть несколько реализаций спецификации. У нас есть библиотеки для JAX-RS, потому что мы можем использовать JAX-RS API в вашем коде, чтобы в будущем, если вы измените свою реализацию (в данном случае Jersey на что-то другое), ваш код все равно будет работать нормально. Вы можете связать это со своим интерфейсом и классом реализации.
Vishal Akkalkote,

@VishalAkkalkote Привет, я пытаюсь осознать это. Я использую Websphere 8.5 на работе и пытаюсь писать службы REST с использованием JAX-RS, но во всех руководствах показан JAX-RS с Jersy. Вы хотите сказать, что я могу написать тот же ТОЧНЫЙ код, и он будет работать, даже если я не использую Jersy lib?
superPhreshHackerKid 08

1
@superPhreshHackerKid Да. он должен работать при условии, что вы будете использовать одну из реализаций JAX-RS. например, Apache CXF
Вишал Аккалкот

Ответы:


99

JAX-RS - это спецификация (просто определение), а Jersey - это реализация JAX-RS.


14
Итак, jax-rs говорят, что мы должны делать, а jersey - делать это ?? В этом есть смысл, но почему существуют библиотеки jax-rs ??
user1851366

20
Например: JAX-RS предоставляет вам набор интерфейсов (стандартные интерфейсы Java), которые реализованы Джерси. Таким образом, этот набор интерфейсов (или классов) необходим как зависимость, которую нужно реализовать.
Ale Zalazar

3
ну, в этом есть смысл ... Но нам всегда нужны другие классы для реализации jax-rs, верно? Как этот, Джерси ..
user1851366

11
Это правильно. т.е. JAX-RS предоставляет интерфейс javax.ws.rs.core.Request, а Джерси реализует его в com.sun.jersey.spi.container.ContainerRequest
Ale Zalazar

9
это то же самое, что JPA является спецификацией, а спящий режим - одной из ее реализаций?
DesirePRG

26

Прямо с сайта трикотажа

Фреймворк Джерси - это больше, чем эталонная реализация JAX-RS. Jersey предоставляет собственный API, расширяющий инструментарий JAX-RS дополнительными функциями и утилитами, чтобы еще больше упростить службу RESTful и разработку клиентов. Джерси также предоставляет множество расширений SPI, чтобы разработчики могли расширять Джерси в соответствии со своими потребностями.


3
Ну, я читал об этом, но не задавай вопрос. Зачем нам майка, если есть jax-rs? jax неполный?
user1851366

28
@ user1851366 Представьте, что существует благотворительная организация, которая создает (и бесплатно раздает) дизайны автомобилей. Производители во всем мире признают, что эти конструкции хороши, и создают настоящие автомобили на их основе. Что ж, JAX-RS похож на план или дизайн того, как создавать RESTful API, и производители программного обеспечения признают это и реализуют эти идеи с помощью реальных RESTful API, один из которых называется Jersey, но есть и другие (например, RESTEasy). Так же, как и многие другие производители, помимо Toyota, могут использовать эти конструкции для создания своих собственных версий автомобилей.
Эдвин Далорцо

3

JAX-RS - это спецификация (просто определение), а Jersey - это реализация JAX-RS. Фреймворк Джерси - это больше, чем эталонная реализация JAX-RS. Jersey предоставляет собственный API, расширяющий инструментарий JAX-RS дополнительными функциями и утилитами, чтобы еще больше упростить службу RESTful и разработку клиентов.


2

JAX-RS - это спецификация, а Jersey - реализация JAX-RS.

Это можно понять, связав это с принципами OOPS. JAX-RS - это интерфейс, а Jersey - это класс, реализующий этот интерфейс.

Эта Спецификация создает СТАНДАРТ для разработки и использования веб-сервисов.

Есть и другие реализации JAX-RS, такие как wink, RestEasy.

JAX-RS - это спецификация, которая определяет, как мы можем реализовать веб-сервисы, что будет типом ввода, форматом ввода, типом вывода, его форматом, его конфигурацией и т. Д. Это просто объявление типа и его реализация - это библиотеки, Джерси, подмигнуть RestEasy и т. д.

Кроме того, Java также имеет спецификацию, такую ​​как JPA (Java Persistence API), и, как упоминалось выше, существует Hibernate, который является реализацией JPA.


2

Использование только JAX-RS не позволяет реализовать REST, необходимо зарегистрировать Джерси в качестве диспетчера сервлетов для запросов REST на web.xml

Разработан стандартный и переносимый JAX-RS API. Инфраструктура веб-служб RESTful в Джерси - это среда с открытым исходным кодом, производственная среда для разработки веб-служб RESTful на Java, которая обеспечивает поддержку API-интерфейсов JAX-RS и служит эталонной реализацией JAX-RS (JSR 311 и JSR 339).

Фреймворк Джерси - это больше, чем эталонная реализация JAX-RS. Jersey предоставляет собственный API, расширяющий инструментарий JAX-RS дополнительными функциями и утилитами для дальнейшего упрощения службы RESTful и разработки клиентов. Источник

Для большего

Restlet и Jersey - две из самых популярных реализаций JAX-RS, используемых для разработки веб-сервисов RESTful в экосистеме Java, но существует еще пара других реализаций, например Apache Wink, Apache CXF и JBoss RESTEasy. Источник

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.