代码@Path("/service")
//@Produces("application/xml")
public class Service {
@Context
private WebServiceContext context;
@POST
    @Path("/post/")
    public String postRequest(String beanString){
System.out.println(this.getClientIpCxf());


       return “”;      
    }

 //获取ip方法
    private String getClientIpCxf() {
        MessageContext ctx = context.getMessageContext();
        HttpServletRequest request = (HttpServletRequest)ctx.get(AbstractHTTPDestination.HTTP_REQUEST);
      
        return request.getRemoteAddr(); 
     }
}

解决方案 »

  1.   

    import java.util.Date;
    import javax.annotation.Resource;
    import javax.jws.WebService;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.xml.ws.WebServiceContext;
    import javax.xml.ws.handler.MessageContext;
    import org.apache.cxf.message.Message;
    import org.apache.cxf.transport.http.AbstractHTTPDestination;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
     
    @WebService
    public class SendSMSImpl implements SendSMS{
     private Logger log = LoggerFactory.getLogger(this.getClass());
     
     @Resource
     private WebServiceContext context; 
     
     @Override
     public ResultObj sendSMSInfo(String username, String password,
       String smsContent, String sendStartDt,
       String sendEndDt, String spName, String businessId,
       String streamNo) {
      String ip = getIp();
      return obj;
     }
     
     public String getIp(){
      try{
      MessageContext ctx = context.getMessageContext();
      HttpServletRequest request = (HttpServletRequest)
       ctx.get(AbstractHTTPDestination.HTTP_REQUEST);
      String ip=request.getRemoteAddr();
         return ip ; 
      } catch(Exception e){
       return "获取ip失败" ;
      }
     }
     
    }
      

  2.   

    楼上那个是soap的webservice 这个我上面说过测试过 是对的,但是现在我需要的是这种针对post消息过来时候去得IP的 不知道有没有样例?或者方法?
      

  3.   

    import org.apache.cxf.jaxrs.ext.MessageContext;
    import javax.ws.rs.core.Context;
    @Context 
    private MessageContext messgeContext;
    HttpServletRequest request = messgeContext.getHttpServletRequest();
    request.getRemoteAddr();自问自答一下吧。注意一下引入的类 和3楼给出的例子那个是不同的,这种适用于restful的cxf开发的。
    前5个留言的给分 散分。
      

  4.   

    http://cxf.apache.org/docs/webservicecontext.html
    你是怎么写的?
    LZ看一下这个http://www.oschina.net/question/158246_45413  
    我不太清楚
      

  5.   

    https://linchunyu.info/81/cxf_fetch_request_ip.html