[Axis+SOAP] passer des paramètres

passer des paramètres [Axis+SOAP] - Java - Programmation

Marsh Posté le 21-11-2006 à 18:35:16    

Bonjour, je suis en train de développer des web services avec Axis et j'ai un problème pour faire passer des paramètres dans le HeaderSoap (ou par tout autre moyen en fait).
 
Pour le moment voici ce que j'ai du côté client:
 

Code :
  1. WebServiceImplServiceLocator sLocator = new WebServiceImplServiceLocator();
  2. sLocator.setMaintainSession(true);
  3. WSSoapBindingStub ws = (WSSoapBindingStub) sLocator.getWS();
  4. ws.setUsername("user" );
  5. ws.setPassword("pass" );
  6. ws._setProperty("name", "value" );
  7. String ret = ws.getResult(1);


 
et du coté serveur dans le invoke d'un handler:
 

Code :
  1. public void invoke(MessageContext msgcontext)
  2. {
  3.     String user = msgContext.getUsername();
  4.     String pass = msgContext.getPassword();
  5.    
  6. }


 
Les deux get du serveur fonctionne bien, mais je n'arrive pas à récupérer la propriété "name" de mon client.
J'ai essayé de faire  

Code :
  1. msgContext.getProperty("name" );

mais cela me renvoie null.  
J'ai aussi essayé de faire:  

Code :
  1. Message msg = msgContext.getRequestMessage();
  2. msg.getProperty("name" );


Sans plus de résultat.
 
Y a-t-il une étape que j'ai loupé? J'ai beau chercher, cette fois ci il semble que google n'est pas mon ami  :(  
N'y a-t-il donc pas moyen d'ajouter des paramètres à ces messages?
 
Merci à tous ceux qui se pencheront sur mon problème (et pour les autres, je ne vous en veux pas  :lol:  :lol: )

Reply

Marsh Posté le 21-11-2006 à 18:35:16   

Reply

Marsh Posté le 22-11-2006 à 11:29:30    

Je me réponds à moi même, j'ai trouvé une solution. Au cas ou ça pourrait intéresser quelqu'un, la voici.  
 
Dans mon client, au lieu du setProperty j'ai fais

Code :
  1. ws.setHeader("namespace", "name", "value" );


 
Et du coté serveur:

Code :
  1. SOAPEnvelope env = msgContext.getRequestMessage().getSOAPEnvelope();
  2. SOAPHeaderElement elem = env.getHeaderByName("namespace", "name" );
  3. String res = (String) elem.getObjectValue();


 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed