Che differenza c'è tra Jersey e jax-rs


95

Non riesco davvero a capire cosa sia veramente la maglia ..

Quello che so è che Jax-RS è un'API per la creazione di servizi Web REST e jersey? Ho ricevuto alcune informazioni e tutti dicono la stessa cosa: "la maglia è un'implementazione di Jax-RS". Ma cosa significa?

Se jax-rs è un'API, perché abbiamo bisogno di jersey per creare un servizio web di riposo? Jersey è ancora un paio di libs per mirare con jax-rs? se sì, jax-rs è un'API incompleta?


13
Maglia in un'implementazione della specifica
Brian Roach

1
Jersey è solo un'interfaccia per utilizzare JAX-rs in modo più semplice. JAX-RS non ha fornito servlet ma Jersey lo fa. Jersey fornisce una libreria per implementare i servizi web Restful in un contenitore servlet Java, Jersey fornisce un'implementazione servlet che analizza le classi predefinite per identificare le risorse RESTful. Nel file di configurazione web.xml registrare questo servlet per l'applicazione web.
taymedee

1
JAX-RS è una specifica (che in pratica dice cosa implementare / seguire) e Jersey è un'implementazione (il che significa come tali specifiche dovrebbero essere implementate). Possiamo avere più implementazioni per una specifica. Abbiamo librerie per JAX-RS perché possiamo usare le API JAX-RS nel tuo codice in modo che in futuro se cambi la tua implementazione (in questo caso Jersey con qualcos'altro) il codice funzionerà ancora bene. Puoi metterlo in relazione con la tua interfaccia e la classe di implementazione.
Vishal Akkalkote

@VishalAkkalkote Ciao, sto cercando di capire questo. Uso Websphere 8.5 al lavoro e sto cercando di scrivere servizi REST utilizzando JAX-RS, ma tutti i tutorial mostrano JAX-RS con Jersy. Stai dicendo che posso scrivere lo stesso codice ESATTO e funzionerà anche se non uso Jersy lib?
superPhreshHackerKid

1
@superPhreshHackerKid Sì. dovrebbe funzionare a patto di usarne uno di implementazione di JAX-RS. ad esempio Apache CXF
Vishal Akkalkote

Risposte:


98

JAX-RS è una specifica (solo una definizione) e Jersey è un'implementazione JAX-RS.


14
Quindi Jax-RS dice cosa dovremmo fare e Jersey lo fa ?? Questo ha senso, ma perché ci sono librerie jax-rs ??
user1851366

20
Ad esempio: JAX-RS fornisce una serie di interfacce (interfacce Java standard) implementate da Jersey. Quindi quel set di interfacce (o classi) sono necessarie come dipendenza da implementare.
Ale Zalazar

3
beh, questo ha senso ... Ma abbiamo sempre bisogno di altre classi per implementare jax-rs, giusto? Come questo, jersey ..
user1851366

10
È corretto. ie JAX-RS ti offre l'interfaccia javax.ws.rs.core.Request e Jersey la implementa in com.sun.jersey.spi.container.ContainerRequest
Ale Zalazar

9
è lo stesso che JPA è la specifica e ibernazione è una delle sue implementazioni?
DesirePRG

26

Direttamente dal sito della maglia

Il framework Jersey è più dell'implementazione di riferimento JAX-RS. Jersey fornisce la propria API che estende il toolkit JAX-RS con funzionalità e utilità aggiuntive per semplificare ulteriormente il servizio RESTful e lo sviluppo del client. Jersey espone anche numerosi SPI di estensione in modo che gli sviluppatori possano estendere Jersey per soddisfare al meglio le loro esigenze.


3
Bene, ho letto di questo, ma non fare la mia domanda. Perché abbiamo bisogno della maglia se abbiamo jax-rs? jax è incompleto?
user1851366

28
@ user1851366 Immagina che ci sia un'organizzazione benevola che crea (e distribuisce gratuitamente) progetti per automobili. I produttori di tutto il mondo riconoscono che quei progetti sono buoni e implementano auto reali basate su quei progetti. Bene, JAX-RS è proprio come un piano o un progetto su come costruire API RESTful, ei produttori di software lo riconoscono e implementano quelle idee con API RESTful reali, una di queste è chiamata Jersey, ma ce ne sono altre (cioè RESTEasy). Proprio come molti altri produttori oltre a Toyota possono utilizzare i progetti per creare la propria versione di auto.
Edwin Dalorzo

3

JAX-RS è una specifica (solo una definizione) e Jersey è un'implementazione JAX-RS. Il framework Jersey è più dell'implementazione di riferimento JAX-RS. Jersey fornisce la propria API che estende il toolkit JAX-RS con funzionalità e utilità aggiuntive per semplificare ulteriormente il servizio RESTful e lo sviluppo del client.


2

JAX-RS è una specifica e Jersey è un'implementazione JAX-RS. - Vero

Questo può essere compreso collegandolo ai principi OOPS JAX-RS è un'interfaccia e Jersey è una classe che implementa tale interfaccia.

Queste specifiche creano uno STANDARD per lo sviluppo e l'utilizzo dei servizi web.

Ci sono anche altre implementazioni JAX-RS come wink, RestEasy.

JAX-RS è una specifica che specifica come possiamo implementare i servizi web, che cosa sarebbe il tipo di input, il formato di input, il tipo di output, il suo formato, la sua configurazione ecc. Sono solo una dichiarazione di tipo e la sua implementazione sono queste librerie, Jersey, occhiolino RestEasy ecc.

Inoltre, Java ha anche specifiche come JPA (Java Persistence API) e come menzionato sopra c'è Hibernate che è un'implementazione di JPA.


2

Utilizzando JAX-RS da solo non è possibile implementare REST, è necessario registrare Jersey come dispatcher di servlet per le richieste REST su web.xml

È stata progettata un'API JAX-RS standard e portatile. Il framework Jersey RESTful Web Services è un framework open source, di qualità di produzione, per lo sviluppo di servizi Web RESTful in Java che fornisce supporto per API JAX-RS e funge da implementazione di riferimento JAX-RS (JSR 311 e JSR 339).

Il framework Jersey è più dell'implementazione di riferimento JAX-RS. Jersey fornisce la propria API che estende il toolkit JAX-RS con funzionalità e utilità aggiuntive per semplificare ulteriormente il servizio RESTful e lo sviluppo del client. fonte

Per più

Restlet e Jersey sono due delle implementazioni più popolari di JAX-RS utilizzate per lo sviluppo di servizi Web RESTful nell'ecosistema Java, ma esistono anche un paio di altre implementazioni, ad esempio Apache Wink, Apache CXF e JBoss RESTEasy. fonte

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.