Bonjour,
voila je suis nouveau dans le monde des webservices, et je suis un peu perdu avec toute la littérature existante.
J'ai opté pour une méthode "Bottom - up" (c'est à dire que j'écrit mon API Java pour ensuite générer le WSDSL).
C'est là que ca se complique: Est-il possible d'une façon ou d'une autre de définir des méthodes qui seront utilisé en asynchrones ?
J'ai bien essaier de faire comme suit :
mais l'outil wsgen (ou le plugin maven) me sort un WSDL vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @WebService public interface MonWS { @WebMethod public Future<?> maMethode(@WebParam(name="parm") String param, @WebParam(name="callback") AsyncHandler<ResultClass> callback); }
J'ai ensuite essaier autre chose:
La génération fonctionne (je voie bien les types d'entrée et de retour dans le WSDSL).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @WebService public interface MonWS { @WebMethod public ResultClass(@WebParam(name="parm") String param); }
et j'ai ensuite lance la commande wsimport avec un xml de binding
Et la miracle, j'ai bien une interface avec les méthodes asynchrones.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" wsdlLocaption="http://localhost:8080/jaxws-async/addnumbers?WSDL" xmlns="http://java.sun.com/xml/ns/jaxws"> <bindings node="wsdl:definitions"> <package name="async.client" /> <enableAsyncMapping>true</enableAsyncMapping> </bindings> </bindings>
Est-ce la "bonne" façon de faire ? ca me parait fastidieux de devoir :
- Ecrire l'API avec des signatures de méthode synchrone
- Générer un WSDL (vi wsgen)
- Générer les classes d'interface asynchrone (via wsimport).
J'espere avoir été assez claire et je vous remercie par avance.
Partager