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 à confirmer?

  1. Est-ce que JAX-RS peut faire une demande 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’est-ce que cela signifie par “REST est particulièrement utile pour les appareils à profil limité, tels que les PDA et les téléphones mobiles”?
  4. Qu’est-ce que cela signifie par “JAX-RS ne nécessite pas de messages XML ou de définitions WSDL service-API?

Est-ce que JAX-RS peut faire une demande asynchrone comme JAX-WS?

1) Je ne sais pas si l’API JAX-RS inclut un mécanisme spécifique pour les requêtes asynchrones, mais cette réponse peut encore changer en fonction de l’implémentation du 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 le faire.

Qu’est-ce que cela signifie par “REST est particulièrement utile pour les appareils à profil limité, tels que les PDA et les téléphones mobiles”?

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 dans les deux sens. Cela contraste avec JAX-WS qui utilise XML. Je ne vois pas XML en lui-même tellement plus lourd que JSON (ce que certains peuvent prétendre), mais avec JAX-WS, c’est la quantité de XML utilisée qui rend REST avec JSON, l’option la plus légère.

Qu’est-ce que cela signifie par “JAX-RS ne nécessite pas de messages XML ou de définitions WSDL service-API?

4) Comme indiqué dans 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 beaucoup plus petit que XML par lui-même. C’est surtout la spécification JAX-WS qui inclut de nombreux frais généraux dans la manière dont elle communique.

En ce qui concerne les définitions WSDL et API, REST utilisera plus fréquemment la structure URI et les commandes HTTP pour définir l’API plutôt que les types de message, comme c’est le cas dans JAX-WS. Cela signifie que vous n’avez pas besoin de publier un document WSDL pour que les autres utilisateurs de votre service puissent savoir comment communiquer avec votre service. Avec REST, vous devrez quand même fournir de la documentation aux autres utilisateurs sur l’organisation du service REST et sur les données et les commandes HTTP à envoyer.

Un autre point important

JAX-WS représente SOAP

JAX-RS représente REST

Comment choisir entre l’implémentation des services Web JAX-RS et JAX-WS?

JAX-WS – est une API Java pour les services Web basés sur XML – un moyen standard de développer des services Web en notation SOAP (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. L ‘échange de messages entre le client et le serveur a été effectué via des messages SOAP basés sur XML .

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 les services Web RESTful. Les services Web RESTful sont représentés sous forme de ressources et peuvent être identifiés par des identificateurs URI (Uniform Resource Identifiers). L’appel de procédure distante dans ce cas est représenté par une requête HTTP et les données nécessaires sont transmises en tant que parameters de la requête. Web Services RESTful – plus flexible, peut utiliser plusieurs types MIME différents. Généralement utilisé pour l’échange de données XML ou l’échange de données JSON (JavaScript Object Notation) …

Je travaillais sur Apachi Axis 1.1 et Axis 2.0 et JAX-WS, mais je suggère que vous deviez JAX-WS car il vous permet de créer wsdl dans n’importe quel format, je faisais des opérations sous GetInquiry () dans Apache Axis2 permettez-moi de commencer le nom d’opération en majuscule, donc je trouve que ce n’est pas bon, alors je vous suggère d’utiliser JAX-WS

Est-ce que JAX-RS peut faire une demande 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’est-ce que cela signifie 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 applications publiques, cela dépend de l’approche que vous souhaitez utiliser.

Qu’est-ce que cela signifie par “JAX-RS ne nécessite pas de messages XML ou de définitions WSDL service-API?

Il a ses propres normes WADL (Web Application Development Language), il a une requête http par laquelle vous pouvez accéder aux ressources qu’elles ont toutes créées par des mentalités différentes. Dans le cas de Jax-Rs, vous devez penser à exposer des ressources.