[AXIS] Modifier header HTTP / Utilisation du MessageContext
Bonjour à tous,
J'ai un client qui doit se connecter à un WS utilisant un systeme de HTTP Basic Authentication.
Pour cela je dois ajouter dans le header HTTP de ma requête un login/mdp.
1) Est-il possible de modifier le header sans utiliser son propre handler ?
Je construis donc un header comme indiquer sur ce site ici
Voila un le morceau de mon code concerner :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
MonService service = new MonServiceLocator();
try {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage message = messageFactory.createMessage();
javax.xml.soap.MimeHeaders hd = message.getMimeHeaders();
String username="";
String password="";
String authorization = Base64.encode((username + ":" + password).getBytes());
hd.addHeader("Authorization", "Basic " + authorization);
port = service.getMonPort();
responseMsg = port.getParamQualif(msg);
} catch (){
} |
2) Comment puis-je maintenant setter mon header a ma requette ? Autrement dit comment récupérer mon SOAPMessage ?
J'aimerai aussi réussir à afficher le header, pour cela je pense utiliser le MessageContext mais je trouve très peu d'exemple exploitable sur le net de son utilisation et la javadoc n'est pas très bavarde ....
3) Quelqu'un sait-il ou l'on peut trouver un tuto, un exemple, une description ou quoi que se soit expliquant le fonctionnement de se MessageContext ?
Merci pour toute aide sur un des ces 3 points :)
Ajouter un Header SOAP vs un Header HTTP à partir d'un stub Axis2
Bonjour,
=> Pour ajouter un header SOAP à un service Web en utilisant le code stub généré par Axis2
MonStub clientStub = new MonStub(...);
ServiceClient serviceClient = clientStub._getServiceClient();
QName qname = new QName("namespaceURI","localPart","prefix");
serviceClient.addStringHeader(qname, "valeur");
=> Pour ajouter un header HTTP à un service Web en utilisant le code stub généré par Axis2
Premièrement, il faut un objet MessageContext (non null) par exemple vous pouvez modifier le code stub code (par exemple MonStub.java) en utilisant la méthode addHttpHeader
this.addHttpHeader(_messageContext, "nom de votre header", "la valeur de votre header");