Qual è la differenza tra JAX-RS e JAX-WS?


93

Dopo aver letto alcuni articoli su JAX-RS e JAX-WS, avevo alcune domande che voglio confermare?

  1. JAX-RS può eseguire richieste asincrone come JAX-WS?
  2. JAX-RS può accedere a un servizio Web che non è in esecuzione sulla piattaforma Java e viceversa?
  3. Cosa significa "REST è particolarmente utile per dispositivi a profilo limitato, come PDA e telefoni cellulari"?
  4. Cosa significa "JAX-RS non richiede messaggi XML o definizioni API di servizio WSDL?

Risposte:


78

JAX-RS può eseguire richieste asincrone come JAX-WS?

1) Non so se l'API JAX-RS include un meccanismo specifico per le richieste asincrone, ma questa risposta potrebbe comunque cambiare in base all'implementazione del client che utilizzi.

JAX-RS può accedere a un servizio Web che non è in esecuzione sulla piattaforma Java e viceversa?

2) Non riesco a pensare a nessun motivo per cui non sarebbe in grado di farlo.

Cosa significa "REST è particolarmente utile per dispositivi a profilo limitato, come PDA e telefoni cellulari"?

3) Le architetture basate su REST in genere utilizzano un formato dati leggero, come JSON, per inviare i dati avanti e indietro. Ciò è in contrasto con JAX-WS che utilizza XML. Non vedo XML di per sé così significativamente più pesante di JSON (cosa che alcune persone potrebbero sostenere), ma con JAX-WS è la quantità di XML utilizzata che finisce per rendere REST con JSON l'opzione più leggera.

Cosa significa "JAX-RS non richiede messaggi XML o definizioni API di servizio WSDL?

4) Come affermato in 3, le architetture REST utilizzano spesso JSON per inviare e ricevere dati. JAX-WS utilizza XML. Non è che JSON sia così significativamente più piccolo di XML da solo. È principalmente che la specifica JAX-WS include molto overhead nel modo in cui comunica.

Per quanto riguarda le definizioni WSDL e API, REST utilizzerà più frequentemente la struttura URI e i comandi HTTP per definire l'API piuttosto che i tipi di messaggi, come viene fatto in JAX-WS. Ciò significa che non è necessario pubblicare un documento WSDL in modo che altri utenti del servizio possano sapere come parlare con il servizio. Con REST sarà comunque necessario fornire agli altri utenti della documentazione su come è organizzato il servizio REST e quali dati e comandi HTTP devono essere inviati.


Grazie per quella risposta molto utile. Ci sono altre cose che potrebbero differenziare JAX-WS da JAX-RS che conosci?
pmark019

92

Un altro punto importante

JAX-WS rappresenta SOAP

JAX-RS rappresenta REST

Come scegliere tra l'implementazione dei servizi web JAX-RS e JAX-WS?


29
In realtà, JAX-WS rappresenta sia servizi Web basati su RESTful che SOAP. Un modo per pensarci è che JAX-RS è specializzato in RESTful, mentre JAX-WS ti consente una maggiore flessibilità di scegliere tra uno dei due, mentre allo stesso tempo è (in alcuni casi) più complicato da configurare.
MattC

Grazie per la semplice spiegazione.
PeerNet

2
" JAX-WS rappresenta sia servizi Web basati su REST che SOAP " - questo non è vero, puoi inserire qualche riferimento per convalidare la tua richiesta, JAX-WS può trasportare SOAP su HTTP e anche XML su HTTP, ma questo rende JAX-WS Riposante. Essere riposanti è un concetto completamente diverso.
hagrawal

43

JAX-WS - è l'API Java per i servizi Web basati su XML - un modo standard per sviluppare un servizio Web in notazione SOAP (Simple Object Access Protocol).

La chiamata dei servizi Web viene eseguita tramite chiamate di procedura remota. Per lo scambio di informazioni tra il client e il Web Service viene utilizzato il protocollo SOAP. Scambio di messaggi tra il client e il server eseguito tramite messaggi SOAP basati su XML .

I client del servizio Web JAX-WS necessitano di un file WSDL per generare codice eseguibile che i client possono utilizzare per chiamare il servizio Web.

JAX-RS - API Java per servizi Web RESTful. I servizi Web RESTful sono rappresentati come risorse e possono essere identificati da URI (Uniform Resource Identifier ). La chiamata di procedura remota in questo caso è rappresentata come una richiesta HTTP ei dati necessari vengono passati come parametri della query. Servizi Web RESTful: più flessibili, possono utilizzare diversi tipi MIME . Tipicamente utilizzato per lo scambio di dati XML o lo scambio di dati JSON (JavaScript Object Notation) ...


Spiegazione breve e nitida !! Eccellente.
Saurabh Rai,

0

ho lavorato su Apachi Axis1.1 e Axis2.0 e JAX-WS ma ti suggerirei di utilizzare JAX-WS perché ti consente di creare wsdl in qualsiasi formato, stavo facendo operazioni come GetInquiry () in Apache Axis2 non lo ha fatto permettimi di avviare il nome dell'operazione in lettere maiuscole, quindi non lo trovo buono, quindi ti suggerirei di usare JAX-WS


0

JAX-RS può eseguire richieste asincrone come JAX-WS?

Sì, può sicuramente usare @Async

JAX-RS può accedere a un servizio Web che non è in esecuzione sulla piattaforma Java e viceversa?

Sì, può farlo

Cosa significa "REST è particolarmente utile per dispositivi a profilo limitato, come PDA e telefoni cellulari"?

Viene utilizzato principalmente per le API pubbliche, dipende dall'approccio che si desidera utilizzare.

Cosa significa "JAX-RS non richiede messaggi XML o definizioni API di servizio WSDL?

Ha i suoi standard WADL (Web application Development Language) ha una richiesta http tramite la quale puoi accedere a risorse che sono del tutto create da mentalità diversa, Nel caso in Jax-Rs devi pensare di esporre le risorse

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.