index
ws : Un client d'un Web Service Asynchrone
Qu'est ce qu'un web service asynchrone ?
C'est un web service que l'on appelle , qui repond (éventellement) instantanément (soit de manière synchrone), puis rappelle dans un deuxiemme, après une durée plus ou moins longue:
l'on parle de "callback"
API Jax-WS
Les opérations asynchrones coté client sont activées ou déactivées grace à l'usage de jaxws:enableAsyncMapping utilisé à l'intérieur d'un fichier de configuration.
Les interfaces suivantes sont utilisées pour les opérations asynchrones:
javax.xml.ws.Response Une interface générique utilisée pour rassembler les résultats de l'invocation d'une méthode avec le contexte d'une réponse.
javax.xml.ws.AsyncHandler Une interface générique que les clients implementent pour recevoir les appels de "callback".
Chaque wsdl est mappé à 2 méthodes suppleémentaires asynchrones dans l'interface du service "endpoint":
- Méthode "Polling": Une méthode qui retourne un type , pour déterminer quand l'opération est achevée et retourne le résultat.
-
Méthode "Callback": Une méthode callback prend un paramètre supplémentaire qui est une instance de AsyncHandler ; et renvoie un objet "Future" qui peut indiqué si l'opération est terminée. L'objet retouné par Future.get() n'a pas de type standard.
Code Client avec gestion des callback asynchrone
Le développement d'un client démarre toujours à partir d'un wsdl. Le wsdl peut être obtenu d'un fichier local ou d'un web-service.
Les étapes sont les suivantes:
- Exécuter wsimport pour générer les "artifacts" pointant sur le wsdl.
- Implémenter le client pour invoquer le web service.
- Vérifier le comportement du client par des appels synchrones et asynchrones.
http://java.sun.com/webservices/docs/2.0/jaxws/asynch.html