Яка різниця між Джерсі та Jax-RS


95

Я справді не можу зрозуміти, що насправді є Джерсі ..

Я знаю, що Jax-RS - це API для створення веб-служб REST та трикотажу? Я отримав деяку інформацію, і всі говорять однаково: "Джерсі - це реалізація Jax-RS". Але що це означає?

Якщо jax-rs - це API, навіщо нам джерсі для створення веб-служби відпочинку? Джерсі - це ще кілька ваг, щоб прицілитися з jax-rs? якщо так, jax-rs - це неповний API?


13
Джерсі у реалізації специфікації
Брайан Роуч

1
Джерсі - просто інтерфейс для більш простого використання JAX-rs. JAX-RS не надає сервлет, але Джерсі надає. Джерсі надає бібліотеку для реалізації веб-служб Restful у контейнері сервлетів Java, Джерсі забезпечує реалізацію сервлету, яка сканує заздалегідь визначені класи для виявлення ресурсів RESTful. У своєму файлі конфігурації web.xml зареєструйте цей сервлет для своєї веб-програми.
таймеді

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

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

1
@superPhreshHackerKid Так. це повинно працювати, за умови, що ви будете використовувати одну з реалізацій JAX-RS. напр. Apache CXF
Vishal Akkalkote

Відповіді:


98

JAX-RS - це специфікація (лише визначення), а Джерсі - реалізація JAX-RS.


14
Тож jax-rs кажуть, що нам робити, а джерсі це робити ?? Це має сенс, але чому існують jax-rs libs ??
user1851366

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

3
ну, це має сенс ... Але, нам завжди потрібні інші класи для реалізації jax-rs, так? Як цей, джерсі ..
user1851366

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

9
це те саме, що JPA є специфікацією, а сплячий режим є одним із її реалізації?
DesirePRG

26

Прямо з сайту майки

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


3
Ну, я читав про це, але не задаю свого питання. Навіщо нам джерсі, якщо у нас є jax-rs? jax неповний?
користувач1851366

28
@ user1851366 Уявіть, що існує доброзичлива організація, яка створює (і дарує безкоштовно) конструкції автомобілів. Виробники по всьому світу визнають, що ці конструкції хороші, і реалізують справжні машини, засновані на цих конструкціях. Ну, JAX-RS - це як план або проект, як будувати RESTful API, і виробники програмного забезпечення визнають це і реалізують ці ідеї за допомогою реальних RESTful API, один з них називається Джерсі, але є й інші (тобто RESTEasy). Так само, як і багато інших виробників, крім Toyota, можуть використовувати конструкції для створення власної версії автомобілів.
Едвін Далорцо,

3

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


2

JAX-RS - це специфікація, а Джерсі - реалізація JAX-RS. - Правда

Це можна зрозуміти, пов’язавши це з принципами OOPS. JAX-RS - це Інтерфейс, а Джерсі - це клас, що реалізує цей інтерфейс.

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

Є й інші реалізації JAX-RS, такі як wink, RestEasy.

JAX-RS - це специфікація, яка вказує, як ми можемо реалізувати веб-служби, що це тип вводу, формат введення, тип виводу, його формат, конфігурація тощо. Його просто декларація типу та його реалізація - це ці бібліотеки, Джерсі, підморгувати RestEasy тощо

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


2

Використання JAX-RS поодинці не може реалізувати REST, потрібно зареєструвати Джерсі як диспетчера сервлетів для запитів REST на web.xml

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

Фреймворк Джерсі - це більше, ніж довідкова реалізація JAX-RS. Джерсі пропонує власний 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.