关于CXF获取IP的方法
2018-01-02 23:01
127 查看
问题描述
参照网上一般是@ResourceprivateWebServiceContextwsContext;MessageContextctx=context.getMessageContext();HttpServletRequestrequest=(HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);即可在soap这种webservice我测试没有问题但是当rest这种的时候MessageContextctx=context.getMessageContext();得到的是null不知道有没有能帮我解决的大侠谢谢
解决方案
解决方案二:代码@Path("/service")//@Produces("application/xml")publicclassService{@ContextprivateWebServiceContextcontext;@POST@Path("/post/")publicStringpostRequest(StringbeanString){System.out.println(this.getClientIpCxf());return“”;}//获取ip方法privateStringgetClientIpCxf(){MessageContextctx=context.getMessageContext();HttpServletRequestrequest=(HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);returnrequest.getRemoteAddr();}}
解决方案三:
importjava.util.Date;importjavax.annotation.Resource;importjavax.jws.WebService;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpSession;importjavax.xml.ws.WebServiceContext;importjavax.xml.ws.handler.MessageContext;importorg.apache.cxf.message.Message;importorg.apache.cxf.transport.http.AbstractHTTPDestination;importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.beans.factory.annotation.Autowired;@WebServicepublicclassSendSMSImplimplementsSendSMS{privateLoggerlog=LoggerFactory.getLogger(this.getClass());@ResourceprivateWebServiceContextcontext;@OverridepublicResultObjsendSMSInfo(Stringusername,Stringpassword,StringsmsContent,StringsendStartDt,StringsendEndDt,StringspName,StringbusinessId,StringstreamNo){Stringip=getIp();returnobj;}publicStringgetIp(){try{MessageContextctx=context.getMessageContext();HttpServletRequestrequest=(HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);Stringip=request.getRemoteAddr();returnip;}catch(Exceptione){return"获取ip失败";}}}
解决方案四:
楼上那个是soap的webservice这个我上面说过测试过是对的,但是现在我需要的是这种针对post消息过来时候去得IP的不知道有没有样例?或者方法?
解决方案五:
importorg.apache.cxf.jaxrs.ext.MessageContext;importjavax.ws.rs.core.Context;@ContextprivateMessageContextmessgeContext;HttpServletRequestrequest=messgeContext.getHttpServletRequest();request.getRemoteAddr();自问自答一下吧。注意一下引入的类和3楼给出的例子那个是不同的,这种适用于restful的cxf开发的。前5个留言的给分散分。
解决方案六: http://cxf.apache.org/docs/webservicecontext.html你是怎么写的?LZ看一下这个http://www.oschina.net/question/158246_45413我不太清楚
相关文章推荐
- 关于java获取本地ip的几种方法
- JSP自定义标签获取用户IP地址的方法
- Java获取本机IP列表的几种方法
- 关于火狐(firefox)及ie下event获取的两种方法
- 获取外网的IP的方法!
- 通过cxf发布的webservice接口中获取来源地址的IP
- WebClient下载代理的IP+Port获取方法
- js获取Ip的几种方法
- 获取外网IP的方法
- 关于 liferay 框架 后台需要获取不带namespace命名空间参数的 方法
- web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
- Android高手进阶教程(十一)之----Android 通用获取Ip的方法(判断手机是否联网的方法)!!!
- 用C#编写获取远程IP,MAC的方法
- php获取ip及网址的简单方法(必看)
- ASP.NET获取IP与MAC地址的方法
- 关于Qt/C++和QML获取屏幕大小方法的总结
- 用JS获取客户端IP的方法
- 获取iframe中的内容、查找获取指定元素(关于用c++调用WEBBROWSER控件,使用相关接口操作web页面元素的一些方法)
- 关于inputStream.available()与HttpURLConnection.getContentLength()方法获取下载文件的大小
- 用于获取由于cdn无法获取用户真实IP的方法