Thứ Ba, 27 tháng 9, 2011

Get client's IP address - Axis2, JAX-WS Web Services

This article describes how to get IP address of clients invoking the axis2 web services and jax-ws web services.
//JAX-WS
package vn.com.me.test;
import javax.annotation.Resource;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;

@WebService
public class WSTesting {
    @Resource
    WebServiceContext wsCtx;

    @WebMethod
    public String sayHello(){
	MessageContext msgCtx = wsCtx.getMessageContext();
        HttpServletRequest req = (HttpServletRequest) msgCtx.get(MessageContext.SERVLET_REQUEST);
	return "Hello guest. Your ip is " + req.getRemoteAddr();
	}
}



//Axis2
package vn.com.me.test;
import org.apache.axis2.context.MessageContext;
public class WSTesting {
    public String sayHello(){
	MessageContext context = MessageContext.getCurrentMessageContext();      
        String ipAddress = context.getProperty(MessageContext.REMOTE_ADDR).toString();
	return "Hello guest. Your ip is " + ipAddress;
	}
}



Không có nhận xét nào:

Đăng nhận xét