it-swarm.com.de

Was ist der Unterschied zwischen JAX-RS und JAX-WS?

Nachdem ich einige Artikel über JAX-RS und JAX-WS gelesen hatte, hatte ich einige Fragen, die ich bestätigen möchte.

  1. Kann JAX-RS eine asynchrone Anforderung wie JAX-WS ausführen?
  2. Kann JAX-RS auf einen Webdienst zugreifen, der nicht auf der Java-Plattform ausgeführt wird, und umgekehrt?
  3. Was bedeutet "REST ist besonders nützlich für Geräte mit begrenztem Profil wie PDAs und Mobiltelefone"?
  4. Was bedeutet es "JAX-RS benötigt keine XML-Nachrichten oder WSDL-Service-API-Definitionen?"
88
pmark019

Kann JAX-RS eine asynchrone Anforderung wie JAX-WS ausführen?

1) Ich weiß nicht, ob die JAX-RS-API einen bestimmten Mechanismus für asynchrone Anforderungen enthält. Diese Antwort kann sich jedoch je nach verwendeter Client-Implementierung ändern. 

Kann JAX-RS auf einen Webdienst zugreifen, der nicht auf der Java-Plattform ausgeführt wird, und umgekehrt?

2) Ich kann mir keinen Grund vorstellen, warum es nicht möglich wäre.

Was bedeutet "REST ist besonders nützlich für Geräte mit begrenztem Profil wie PDAs und Mobiltelefone"?

3) Auf REST basierende Architekturen verwenden normalerweise ein einfaches Datenformat wie JSON, um Daten hin und her zu senden. Dies steht im Gegensatz zu JAX-WS, das XML verwendet. Ich sehe XML an sich nicht so bedeutend schwerer als JSON (was einige Leute vielleicht streiten), aber mit JAX-WS ist es die Menge an XML, die am Ende REST mit JSON zur leichteren Option macht.

Was bedeutet es "JAX-RS benötigt keine XML-Nachrichten oder WSDL-Service-API-Definitionen?"

4) Wie in 3 angegeben, verwenden REST -Architekturen häufig JSON, um Daten zu senden und zu empfangen. JAX-WS verwendet XML. Es ist nicht so, dass JSON so viel kleiner ist als XML an sich. Es ist meistens so, dass die JAX-WS-Spezifikation viel Kommunikationsaufwand mit sich bringt. 

In Bezug auf WSDL- und API-Definitionen verwendet REST häufiger die URI-Struktur und HTTP-Befehle zum Definieren der API anstelle von Nachrichtentypen, wie dies bei JAX-WS der Fall ist. Das bedeutet, dass Sie kein WSDL-Dokument veröffentlichen müssen, damit andere Benutzer Ihres Dienstes wissen können, wie sie mit Ihrem Dienst kommunizieren sollen. Mit REST müssen Sie anderen Benutzern noch etwas Dokumentation darüber bereitstellen, wie der REST - Dienst organisiert ist und welche Daten und HTTP-Befehle gesendet werden müssen.

72
Nick Roth

Ein weiterer wichtiger Punkt

JAX-WS steht für SOAP

JAX-RS steht für REST

Wie kann man zwischen der Implementierung der Webservices JAX-RS und JAX-WS wählen?

87
user2849471

JAX-WS - ist Java-API für XML-basierte Webservices - eine Standardmethode zum Entwickeln eines Webdienstes in SOAP - Notation (Simple Object Access Protocol).

Der Aufruf der Web Services erfolgt über Remoteprozeduraufrufe. Für den Informationsaustausch zwischen dem Client und dem Web Service wird das Protokoll SOAP verwendet. Der Nachrichtenaustausch zwischen dem Client und dem Server wird über XML - basierte SOAP - Nachrichten ausgeführt.

Clients des JAX-WS Web-Service benötigen eine WSDL -Datei, um ausführbaren Code zu generieren, den die Clients zum Aufruf von Web-Service verwenden können.

JAX-RS - Java-API für RESTful-Webdienste. RESTful-Webdienste werden als Ressourcen dargestellt und können durch Uniform Resource Identifiers ( URI ) identifiziert werden. Der Remoteprozeduraufruf wird in diesem Fall durch eine HTTP - Anforderung dargestellt und die erforderlichen Daten werden als Parameter der Abfrage übergeben. Web Services RESTful - flexibler, können verschiedene MIME - Typen verwenden. Wird normalerweise für den XML-Datenaustausch oder für den JSON (JavaScript Object Notation) -Datenaustausch verwendet.

40
Aleksey Bykov

ich habe an Apachi Axis1.1 und Axis2.0 und JAX-WS gearbeitet, aber ich würde vorschlagen, dass Sie JAX-WS verwenden müssen, weil es Ihnen erlaubt, Wsdl in jedem Format zu machen Erlauben Sie mir, den Operationsnamen in Großbuchstaben zu starten, also finde ich es nicht gut, also würde ich vorschlagen, dass Sie JAX-WS verwenden müssen 

0
Waseem Saeed

Kann JAX-RS eine asynchrone Anforderung wie JAX-WS ausführen?

Ja, @Async kann sicher verwendet werden

Kann JAX-RS auf einen Webdienst zugreifen, der nicht auf der Java-Plattform ausgeführt wird, und umgekehrt?

Ja kann es tun

Was bedeutet "REST ist besonders nützlich für Geräte mit begrenztem Profil wie PDAs und Mobiltelefone"?

Es wird hauptsächlich für öffentliche APIs verwendet. Es hängt davon ab, welchen Ansatz Sie verwenden möchten.

Was bedeutet es "JAX-RS benötigt keine XML-Nachrichten oder WSDL-Service-API-Definitionen?"

Es hat seine eigenen Standards WADL (Web Application Development Language). Es hat eine http-Anforderung, mit der Sie auf Ressourcen zugreifen können, auf die sie insgesamt durch unterschiedliche Denkweisen eingestellt sind. In Jax-Rs müssen Sie darüber nachdenken, Ressourcen bereitzustellen

0
Urvil Joshi