获取Web服务客户端的IP地址


问题内容

我正在使用JAX-WS,但是在检索消耗Web服务的客户端信息时遇到问题。我已经找到了如何使用JAX-RPC和Apache Tomcat
Axis(而不是JAX-WS)来做到这一点。有人对此有想法吗?


问题答案:

那这个呢:

@WebService
public class MyService {

  @Resource
  WebServiceContext wsContext;

  /**
   * Web service operation
   */ 
  @WebMethod 
  public String myMethod() {

    MessageContext mc = wsContext.getMessageContext();
    HttpServletRequest req = (HttpServletRequest)mc.get(MessageContext.SERVLET_REQUEST); 
    System.out.println("Client IP = " + req.getRemoteAddr());

  }

}