Asynchrone web service SOAP
J'ai une interface qui j'ai exposé comme un SAVON ordinaire de service web. Une méthode de l'interface consiste pour le client d'envoyer un fichier sur le serveur, le serveur traite le fichier et retourne un fichier de résultat. Le traitement du fichier peut prendre un certain temps, donc je pense que l'utilisation asynchrone invocation de cette méthode est une meilleure idée. J'ai pensé au flux suivant:
Le client appelle la méthode asynchrone et envoie le fichier à l'aide d'une pièce jointe (MTOM).
Lorsque le fichier est reçu par le serveur, une réponse est envoyée au client indiquant que le fichier a bien été reçu et qu'elle sera traitée sous peu.
Une fois le fichier de processus, une réponse est envoyée au client indiquant qu'il a été traité et un fichier de résultat est renvoyé dans la réponse aussi comme une pièce jointe.
Est-il possible d'utiliser du SAVON avec CXF?
Grâce
OriginalL'auteur Mickael Marrache | 2012-06-04
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Callback
approche deAsynchronous InvocationModel
.Plus d'informations peut être eu de la suivante:
Apache CXF
OK.Normalement, lorsque, dans le cas synchrone de service, un seul thread sera utilisé pour remplir la demande et la réponse.Mais dans le cas de service Asynchrone, un thread seront utilisées séparément pour servir la réponse du serveur.Donc, fondamentalement , vous avez besoin de choisir le type de cadre qui prend en charge cette fonctionnalité.
Selon ce qu'il est expliqué dans today.java.net/pub/a/today/2006/09/19/..., ma question est, si j'utilise le modèle de Rappel, peut mon service client doit être écrit en C#? Depuis la configuration se fait sur le côté client, le C# équivalent de JAX-WS doit prendre en charge cette fonctionnalité.
OriginalL'auteur UVM
Si vous utilisez un outil comme WSDL2Java pour la génération de clients, vous pouvez même choisir de générer un client asynchrone.
Il va générer pour vous un gestionnaire de rappel avec des méthodes vides pour chacune des opérations de service et les exceptions du service. Ensuite, vous pouvez simplement mettre en œuvre ces méthodes pour définir les actions à faire lors de la réception de la réponse.
Rappelez-vous que quand un appel asynchrone est fait un nouveau thread est démarré.
OriginalL'auteur giocarmine
Oui, une Fois que vous recevez le fichier, vous pouvez retourner l'id de la demande des clients et de commencer le traitement sur le côté serveur et ne maintenir les divers états de la transformation. Le Client peut revenir dans l'intervalle différent, et recevra le statut de traitement ou de la sortie, s'il est terminé.
OriginalL'auteur sudmong