您的位置:首页 > 其它

解决CXF获取客户端IP(WebServiceContext为null问题)

2014-01-11 16:10 603 查看
网络上很多文章都是这样配的:

@Resource

private WebServiceContext wscontext;

public String getIP(){

MessageContext ctx = wscontext.getMessageContext();

HttpServletRequest request = (HttpServletRequest)ctx.ge(AbstractHTTPDestination.HTTP_REQUEST);

return request.getRemoteAddr();

}

但是在我测试的过程中,发现如果把这段代码写在aop切点中,wscontext就是null,如果写在普通的实现类,就可以正常获取。其实很多帖子也说到null的问题,但最后都没解决。

现在在这里发现另一种方法,经测试完全有效:

Message message = PhaseInterceptorChain.getCurrentMessage();

HttpServletRequest httprequest = (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);

return httprequest.getRemoteAddr();

英文 http://www.javatips.net/blog/2012/03/getting-ip-address-using-cxf
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: