Яка різниця між Джерсі та 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.