只用了JAX-WS 2.1 没用其它web service工具 

解决方案 »

  1.   

    虽然不太明白你说的,但可以相信,不管采用的是什么技术,只要遵循了Java EE的规范,应该就能采用这些方法吧。
    JavaEE API文档,ServletRequst接口,有一个 getRemoteAddr()方法,能获取客户端IP地址。
      

  2.   

    to filemon
     我就是不知道如何在web 服务端如何调用到ServletRequst
      

  3.   

    通过 @Resource 注入 WebServiceContext 对象,再从 WebServiceContext 对象中使用 getMessageContext() 获得 MessageContext 对象,再使用:ServletRequest request = (ServletRequest)messageContext.get(MessageContext.HTTP_REQUEST);上面这些虽然是 Java EE 5/JAX-WS 2.0 中的方式,我看了一下 JAX-WS 2.1 中也可以使用的,你试试看。所用的接口、Annotation 完整名称为:
    @Resource: javax.annotation.Resource
    WebServiceContext: javax.xml.ws.WebServiceContext
    MessageContext: javax.xml.ws.handler.MessageContext
    ServletRequest: javax.servlet.ServletRequest
      

  4.   

    @Resource
    private WebServiceContext wsContext;方法中
    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest  request  =  (HttpServletRequest)(mc.get(mc.SERVLET_REQUEST));
    String remortAddress = request.getRemoteAddr();
    System.out.println(remortAddress);谢谢 火龙果 
      

  5.   

    我是使用时mc.get(mc.SERVLET_REQUEST)为空,里面没有这个key 
    这是为什么呢?
      

  6.   

    mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);