Welcher Unterschied zwischen Jersey und Jax-Rs

94

Ich kann wirklich nicht verstehen, was wirklich Trikot ist.

Was ich weiß ist, dass Jax-RS eine API zum Erstellen von REST-Webdiensten und Trikot ist? Ich habe einige Informationen erhalten und alle sagen dasselbe: "Trikot ist eine Implementierung von Jax-RS". Aber was bedeutet das?

Wenn jax-rs eine API ist, warum benötigen wir Trikot, um einen Rest-Webdienst zu erstellen? Ist Trikot ein paar mehr Bibliotheken, um mit Jax-Rs zu zielen? Wenn ja, ist jax-rs eine unvollständige API?

user1851366
quelle
13
Jersey in einer Implementierung der JAX-RS- Spezifikation
Brian Roach
1
Jersey ist nur eine Schnittstelle, um JAX-rs einfacher zu nutzen. JAX-RS hat kein Servlet bereitgestellt, Jersey jedoch. Jersey bietet eine Bibliothek zum Implementieren von Restful-Webservices in einem Java-Servlet-Container. Jersey bietet eine Servlet-Implementierung, die vordefinierte Klassen scannt, um RESTful-Ressourcen zu identifizieren. In Ihrer Konfigurationsdatei web.xml registrieren Sie dieses Servlet für Ihre Webanwendung.
Taymedee
1
JAX-RS ist eine Spezifikation (die im Grunde sagt, was implementiert / befolgt werden soll) und Jersey ist eine Implementierung (was bedeutet, wie diese Spezifikationen implementiert werden sollten). Wir können mehrere Implementierungen für eine Spezifikation haben. Wir haben Bibliotheken für JAX-RS, da wir JAX-RS-APIs in Ihrem Code verwenden können, sodass Ihr Code auch in Zukunft einwandfrei funktioniert, wenn Sie Ihre Implementierung (in diesem Fall Jersey in etwas anderes) ändern. Sie können es mit Ihrer Schnittstelle und Implementierungsklasse verknüpfen.
Vishal Akkalkote
@ VishalAkkalkote Hallo, ich versuche meinen Kopf darum zu wickeln. Ich verwende Websphere 8.5 bei der Arbeit und versuche, REST-Services mit JAX-RS zu schreiben, aber alle Tutorials zeigen JAX-RS mit Jersy. Wollen Sie damit sagen, dass ich denselben EXAKTEN Code schreiben kann und er auch dann funktioniert, wenn ich Jersy lib nicht verwende?
SuperPhreshHackerKid
1
@superPhreshHackerKid Ja. Es sollte funktionieren, vorausgesetzt, Sie verwenden eine der Implementierungen von JAX-RS. zB Apache CXF
Vishal Akkalkote

Antworten:

98

JAX-RS ist eine Spezifikation (nur eine Definition) und Jersey ist eine JAX-RS-Implementierung.

Ale Zalazar
quelle
14
Also sagen Jax-Rs, was wir tun sollen, und Trikot tun es? Das macht Sinn, aber warum gibt es jax-rs libs?
user1851366
20
Beispiel: JAX-RS bietet Ihnen eine Reihe von Schnittstellen (Standard-Java-Schnittstellen), die von Jersey implementiert werden. Dieser Satz von Schnittstellen (oder Klassen) wird als zu implementierende Abhängigkeit benötigt.
Ale Zalazar
3
Nun, das macht Sinn ... Aber wir brauchen immer andere Klassen, um jax-rs zu implementieren, oder? Wie dieses, Trikot ..
user1851366
10
Das ist richtig. dh JAX-RS gibt Ihnen javax.ws.rs.core.Request-Schnittstelle und Jersey implementiert es in com.sun.jersey.spi.container.ContainerRequest
Ale Zalazar
9
Ist dies dasselbe wie JPA als Spezifikation und Ruhezustand als eine seiner Implementierungen?
DesirePRG
26

Gerade vom Jersey - Website

Das Jersey-Framework ist mehr als die JAX-RS-Referenzimplementierung. Jersey bietet eine eigene API, die das JAX-RS-Toolkit um zusätzliche Funktionen und Dienstprogramme erweitert, um die RESTful-Service- und Client-Entwicklung weiter zu vereinfachen. Jersey stellt auch zahlreiche Erweiterungs-SPIs zur Verfügung, sodass Entwickler Jersey erweitern können, um ihren Anforderungen am besten zu entsprechen.

Orangenziege
quelle
3
Nun, ich habe darüber gelesen, aber meine Frage nicht gestellt. Warum brauchen wir Trikot, wenn wir Jax-Rs haben? Jax ist unvollständig?
user1851366
28
@ user1851366 Stellen Sie sich vor, es gibt eine wohlwollende Organisation, die Designs für Autos erstellt (und kostenlos verschenkt). Hersteller auf der ganzen Welt erkennen, dass diese Designs gut sind, und implementieren echte Autos, die auf diesen Designs basieren. Nun, JAX-RS ist wie ein Plan oder ein Entwurf zum Erstellen von RESTful-APIs, und Softwarehersteller erkennen dies und implementieren diese Ideen mit echten RESTful-APIs. Eine davon heißt Jersey, aber es gibt andere (z. B. RESTEasy). Genauso wie viele andere Hersteller neben Toyota die Designs verwenden, um ihre eigene Version von Autos zu erstellen.
Edwin Dalorzo
3

JAX-RS ist eine Spezifikation (nur eine Definition) und Jersey ist eine JAX-RS-Implementierung. Das Jersey-Framework ist mehr als die JAX-RS-Referenzimplementierung. Jersey bietet eine eigene API, die das JAX-RS-Toolkit um zusätzliche Funktionen und Dienstprogramme erweitert, um die RESTful-Service- und Client-Entwicklung weiter zu vereinfachen.

Horia
quelle
2

JAX-RS ist eine Spezifikation und Jersey ist eine JAX-RS-Implementierung

Dies kann in Bezug auf die OOPS-Prinzipien verstanden werden. JAX-RS ist eine Schnittstelle und Jersey ist eine Klasse, die diese Schnittstelle implementiert.

Diese Spezifikation erstellt einen STANDARD für die Entwicklung und Verwendung der Webdienste.

Es gibt auch andere JAX-RS-Implementierungen wie Wink, RestEasy.

JAX-RS ist eine Spezifikation, die angibt, wie wir die Webdienste implementieren können, was Eingabetyp, Eingabeformat, Ausgabetyp, Format, Konfiguration usw. sein sollen. Nur eine Typdeklaration und ihre Implementierung sind diese Bibliotheken, Jersey, zwinker RestEasy etc.

Darüber hinaus hat Java auch Spezifikationen wie JPA (Java Persistence API) und wie oben erwähnt gibt es Hibernate, eine Implementierung von JPA.

Shivam Kashyap
quelle
2

Die Verwendung von JAX-RS allein kann REST nicht implementieren. Sie müssen Jersey als Servlet-Dispatcher für REST-Anforderungen registrieren web.xml

Eine standardmäßige und tragbare JAX-RS-API wurde entwickelt. Das Jersey RESTful Web Services-Framework ist ein Open Source-Framework für die Produktionsqualität und die Entwicklung von RESTful Web Services in Java, das JAX-RS-APIs unterstützt und als JAX-RS-Referenzimplementierung (JSR 311 & JSR 339) dient.

Das Jersey-Framework ist mehr als die JAX-RS-Referenzimplementierung. Jersey bietet eine eigene API, die das JAX-RS-Toolkit um zusätzliche Funktionen und Dienstprogramme erweitert, um die RESTful-Service- und Client-Entwicklung weiter zu vereinfachen. Quelle

Für mehr

Restlet und Jersey sind zwei der beliebtesten Implementierungen von JAX-RS, die für die Entwicklung von RESTful-Webdiensten im Java-Ökosystem verwendet werden. Es gibt jedoch auch einige andere Implementierungen, z. B. Apache Wink, Apache CXF und JBoss RESTEasy. Quelle

Premraj
quelle