AXIS lire un paramètre dans l'URL envoyé par le client, ou bien son IP
Par PlaceOweb le dimanche, novembre 30 2008, 12:38 - JAVA - Lien permanent
Comment faire un simple HttpServletRequest.getParameter("monParametreAlire"); avec Axis pour récupérer la valeur de http://mon.serveur.com/monDossier/monWebService?monParametreAlire=maValeur
Également, comment récupérer l'adresse IP du client appelant le WS ?
Lire des paramètres GET lors d'un appel WS AXIS
Vous pouvez par exemple dans votre Skeleton rajouter :
HttpServletRequest httpServletRequest = (HttpServletRequest) MessageContext.getCurrentContext().getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST); System.out.println("monParametreAlire:"+httpServletRequest.getParameter("monParametreAlire"));
qui vous retournera :
[STDOUT] monParametreAlire:maValeur
Pour obtenir d'autres classes voyez les valeurs de org.apache.axis.transport.http.HTTPConstants telles que
- MC_HTTP_SERVLET retournant HttpServlet
- MC_HTTP_SERVLETREQUEST retournant HttpServletRequest
- MC_HTTP_SERVLETRESPONSE retournant HttpServletResponse
Et lisez la note du guide AXIS Classes to Know
Obtenir l'IP du client
// basé sur Axis 1.1 import org.apache.axis.MessageContext; import org.apache.axis.transport.http.HTTPConstants; ... ... public class UnService public string UneMethod(String uneEntree) { MessageContext context = MessageContext.getCurrentContext(); String adresseIp = (String) context.getProperty(HTTPConstants.MC_REMOTE_ADDR); }
// basé sur Axis 1.3 import org.apache.axis.Constants; import org.apache.axis.MessageContext; .... .... MessageContext messageContext = MessageContext.getCurrentContext(); String adresseIp = messageContext.getStrProp(Constants.MC_REMOTE_ADDR);