Quelle différence entre Jersey et Jax-RS

95

Je ne comprends vraiment pas ce qu'est vraiment le maillot.

Ce que je sais, c'est que Jax-RS est une API pour la création de services Web REST et Jersey? J'ai eu quelques informations et tous disent la même chose: "le maillot est une implémentation de Jax-RS". Mais qu'est-ce que cela signifie?

Si jax-rs est une API, pourquoi avons-nous besoin de jersey pour créer un service Web de repos? Est-ce que Jersey est une ou deux autres bibliothèques à viser avec les jax-rs? si oui, jax-rs est une API incomplète?

user1851366
la source
13
Jersey dans une mise en œuvre de la JAX-RS spécifications
Brian Roach
1
Jersey juste une interface pour utiliser JAX-rs de manière plus simple. JAX-RS ne fournit pas de servlet, contrairement à Jersey. Jersey fournit une bibliothèque pour implémenter les services Web Restful dans un conteneur de servlet Java, Jersey fournit une implémentation de servlet qui analyse les classes prédéfinies pour identifier les ressources RESTful. Dans votre fichier de configuration web.xml, enregistrez ce servlet pour votre application Web.
taymedee
1
JAX-RS est une spécification (qui dit essentiellement ce qu'il faut implémenter / suivre) et Jersey est une implémentation (ce qui signifie comment ces spécifications doivent être implémentées). Nous pouvons avoir plusieurs implémentations pour une spécification. Nous avons des bibliothèques pour JAX-RS car nous pouvons utiliser les API JAX-RS dans votre code afin qu'à l'avenir, si vous changez votre implémentation (dans ce cas Jersey en autre chose), votre code fonctionnera toujours correctement. Vous pouvez le relier à votre interface et à votre classe d'implémentation.
Vishal Akkalkote
@VishalAkkalkote Bonjour, j'essaie de comprendre cela. J'utilise Websphere 8.5 au travail et j'essaie d'écrire des services REST à l'aide de JAX-RS, mais tous les didacticiels montrent JAX-RS avec Jersy. Êtes-vous en train de dire que je peux écrire le même code EXACT et que cela fonctionnera même si je n'utilise pas Jersy lib?
superPhreshHackerKid
1
@superPhreshHackerKid Oui. cela devrait fonctionner à condition que vous utilisiez l'une des implémentations de JAX-RS. par exemple Apache CXF
Vishal Akkalkote

Réponses:

98

JAX-RS est une spécification (juste une définition) et Jersey est une implémentation JAX-RS.

Ale Zalazar
la source
14
Alors jax-rs dit ce que nous devrions faire, et maillot le fait ?? C'est logique, mais pourquoi il y a des libs jax-rs ??
user1851366
20
Par exemple: JAX-RS vous donne un ensemble d'interfaces (interfaces Java standard) qui sont implémentées par Jersey. Donc, cet ensemble d'interfaces (ou de classes) est nécessaire en tant que dépendance à implémenter.
Ale Zalazar du
3
eh bien, c'est logique ... Mais, nous avons toujours besoin d'autres classes pour implémenter jax-rs, non? Comme celui-ci, maillot ..
user1851366
10
C'est correct. c'est-à-dire que JAX-RS vous donne l'interface javax.ws.rs.core.Request et Jersey l'implémente dans com.sun.jersey.spi.container.ContainerRequest
Ale Zalazar
9
est-ce la même chose que JPA étant la spécification et la mise en veille prolongée étant l'une de ses implémentations?
DesirePRG
26

Directement depuis le site du maillot

Le framework Jersey est plus que l'implémentation de référence JAX-RS. Jersey fournit sa propre API qui étend la boîte à outils JAX-RS avec des fonctionnalités et des utilitaires supplémentaires pour simplifier davantage le service RESTful et le développement client. Jersey expose également de nombreux SPI d'extension afin que les développeurs puissent étendre Jersey pour mieux répondre à leurs besoins.

chèvre orange
la source
3
Eh bien, j'ai lu à ce sujet, mais ne posez pas ma question. Pourquoi avons-nous besoin d'un maillot si nous avons des jax-rs? jax est incomplet?
user1851366
28
@ user1851366 Imaginez qu'il existe une organisation bienveillante qui crée (et distribue gratuitement) des designs pour les voitures. Les fabricants du monde entier reconnaissent que ces designs sont bons et implémentent de vraies voitures basées sur ces designs. Eh bien, JAX-RS est comme un plan ou une conception sur la façon de créer des API RESTful, et les fabricants de logiciels le reconnaissent et mettent en œuvre ces idées avec de vraies API RESTful, l'une d'entre elles s'appelle Jersey, mais il y en a d'autres (c'est-à-dire RESTEasy). Tout comme de nombreux autres fabricants que Toyota peuvent utiliser les conceptions pour créer leur propre version de voitures.
Edwin Dalorzo
3

JAX-RS est une spécification (juste une définition) et Jersey est une implémentation JAX-RS. Le framework Jersey est plus que l'implémentation de référence JAX-RS. Jersey fournit sa propre API qui étend la boîte à outils JAX-RS avec des fonctionnalités et des utilitaires supplémentaires pour simplifier davantage le service RESTful et le développement client.

Horia
la source
2

JAX-RS est une spécification et Jersey est une implémentation JAX-RS.

Cela peut être compris en le reliant aux principes OOPS JAX-RS est une interface et Jersey est une classe implémentant cette interface.

Ces spécifications créent un STANDARD pour le développement et l'utilisation des services Web.

Il existe également d'autres implémentations JAX-RS comme wink, RestEasy.

JAX-RS est une spécification qui spécifie comment pouvons-nous implémenter les services Web, quel serait le type d'entrée, le format d'entrée, le type de sortie, son format, sa configuration, etc. clin d'oeil RestEasy etc.

De plus, Java a également des spécifications telles que JPA (Java Persistence API) et, comme mentionné ci-dessus, il existe Hibernate qui est une implémentation de JPA.

Shivam Kashyap
la source
2

L'utilisation de JAX-RS seul ne peut pas implémenter REST, vous devez enregistrer Jersey en tant que répartiteur de servlet pour les requêtes REST sur web.xml

Une API JAX-RS standard et portable a été conçue. Le framework Jersey RESTful Web Services est un framework open source de qualité de production pour le développement de services Web RESTful en Java qui prend en charge les API JAX-RS et sert d'implémentation de référence JAX-RS (JSR 311 & JSR 339).

Le framework Jersey est plus que l'implémentation de référence JAX-RS. Jersey fournit sa propre API qui étend la boîte à outils JAX-RS avec des fonctionnalités et des utilitaires supplémentaires pour simplifier davantage le service RESTful et le développement client. La source

Pour plus

Restlet et Jersey sont deux des implémentations les plus populaires de JAX-RS utilisées pour développer des services Web RESTful dans l'écosystème Java, mais il existe également quelques autres implémentations, par exemple Apache Wink, Apache CXF et JBoss RESTEasy. La source

Premraj
la source