日期:2014-05-19  浏览次数:20806 次

java webservice 服务器代码如何获取客户端的IP地址

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

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