web-dev-qa-db-fra.com

Quelle est la différence entre JAX-RS et JAX-WS?

Après avoir lu quelques articles sur JAX-RS et JAX-WS, j'ai quelques questions que je souhaite confirmer.

  1. Est-ce que JAX-RS peut faire une requête asynchrone comme JAX-WS?
  2. JAX-RS peut-il accéder à un service Web qui ne s'exécute pas sur la plate-forme Java, et inversement?
  3. Qu'entend-on par "REST est particulièrement utile pour les appareils à profil limité, tels que les PDA et les téléphones mobiles"?
  4. Qu'entend-on par "JAX-RS ne nécessite pas de messages XML ni de définitions d'API de service WSDL?
88
pmark019

Est-ce que JAX-RS peut faire une requête asynchrone comme JAX-WS?

1) Je ne sais pas si l'API JAX-RS inclut un mécanisme spécifique pour les demandes asynchrones, mais cette réponse peut toujours changer en fonction de l'implémentation client que vous utilisez. 

JAX-RS peut-il accéder à un service Web qui ne s'exécute pas sur la plate-forme Java, et inversement?

2) Je ne vois aucune raison pour laquelle il ne pourrait pas.

Qu'entend-on par "REST est particulièrement utile pour les appareils à profil limité, tels que les assistants personnels et les téléphones portables"?

3) Les architectures basées sur REST utilisent généralement un format de données léger, tel que JSON, pour envoyer des données en arrière. Cela contraste avec JAX-WS qui utilise XML. Je ne vois pas le XML en tant que tel beaucoup plus lourd que JSON (ce que certaines personnes pourraient soutenir), mais avec JAX-WS, c'est la quantité de XML utilisée qui finit par rendre REST avec JSON l'option plus claire.

Qu'entend-on par "JAX-RS ne nécessite pas de messages XML ni de définitions d'API de service WSDL?

4) Comme indiqué en 3, les architectures REST utilisent souvent JSON pour envoyer et recevoir des données. JAX-WS utilise XML. Ce n'est pas que JSON soit tellement plus petit que XML par lui-même. C'est principalement que la spécification JAX-WS inclut beaucoup de travail dans sa façon de communiquer. 

En ce qui concerne les définitions WSDL et API, REST utilisera plus fréquemment la structure d'URI et les commandes HTTP pour définir l'API plutôt que les types de message, comme dans le cas de JAX-WS. Cela signifie que vous n'avez pas besoin de publier un document WSDL pour que les autres utilisateurs de votre service sachent comment communiquer avec votre service. Avec REST, vous devrez toujours fournir aux autres utilisateurs une documentation sur la manière dont le service REST est organisé et sur les commandes de données et HTTP à envoyer.

72
Nick Roth

Un autre point important

JAX-WS représente SOAP

JAX-RS représente le repos

Comment choisir entre la mise en œuvre de services Web JAX-RS et JAX-WS?

87
user2849471

JAX-WS - est une API Java pour les services Web basés sur XML - un moyen standard de développer des services Web en SOAP notation (Simple Object Access Protocol).

L'appel des services Web est effectué via des appels de procédure à distance. Le protocole SOAP est utilisé pour l'échange d'informations entre le client et le service Web. Échange de messages entre le client et le serveur effectué par le biais de messages XML - SOAP.

Les clients du service Web JAX-WS ont besoin d'un fichier WSDL pour générer le code exécutable que les clients peuvent utiliser pour appeler Web-Service.

JAX-RS - API Java pour services Web RESTful. Les services Web RESTful sont représentés en tant que ressources et peuvent être identifiés par des identificateurs de ressources uniformes ( URI ). L'appel de procédure à distance dans ce cas est représenté par une requête HTTP - et les données nécessaires sont transmises en tant que paramètres de la requête. Web Services RESTful - plus flexible, peut utiliser plusieurs types différents de MIME -. Généralement utilisé pour l'échange de données XML ou l'échange de données JSON (JavaScript Object Notation) ...

40
Aleksey Bykov

je travaille sur Apachi Axis1.1, Axis2.0 et JAX-WS, mais je suggérerais que vous deviez utiliser JAX-WS, car cela vous permettait de créer des fichiers wsdl dans tous les formats. permettez-moi de commencer le nom de l'opération en majuscule, donc je trouve que ce n'est pas bon, alors je vous suggère d'utiliser JAX-WS 

0
Waseem Saeed

Est-ce que JAX-RS peut faire une requête asynchrone comme JAX-WS?

Oui, il peut sûrement utiliser @Async

JAX-RS peut-il accéder à un service Web qui ne s'exécute pas sur la plate-forme Java, et inversement?

Oui, ça peut faire

Qu'entend-on par "REST est particulièrement utile pour les appareils à profil limité, tels que les PDA et les téléphones mobiles"?

Il est principalement utilisé pour les sites publics, cela dépend de l’approche que vous souhaitez utiliser.

Qu'entend-on par "JAX-RS ne nécessite pas de messages XML ni de définitions d'API de service WSDL?

Il a ses propres normes WADL (Web Application Development Language), il a une requête http par laquelle vous pouvez accéder aux ressources qui sont créées par un état d'esprit différent. Dans le cas où Jax-Rs vous devez penser à exposer des ressources

0
Urvil Joshi