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 :

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);
}
mais l'outil wsgen (ou le plugin maven) me sort un WSDL vide.


J'ai ensuite essaier autre chose:

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);
}
La génération fonctionne (je voie bien les types d'entrée et de retour dans le WSDSL).
et j'ai ensuite lance la commande wsimport avec un xml de binding

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>
Et la miracle, j'ai bien une interface avec les méthodes asynchrones.

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.