我正在使用 JAX-WS,但无法检索正在使用 Web 服务的客户端信息。我已经找到了如何使用 JAX-RPC 和 Apache Tomcat Axis 来完成它,但不是使用 JAX-WS。有人对此有任何想法吗?
问问题
42878 次
4 回答
49
那这个呢:
@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());
}
}
于 2009-10-29T04:30:14.850 回答
5
或这个:
@Path("终端") 公共类终端{ @Context private javax.servlet.http.HttpServletRequest hsr; @得到 @Path("get_ip") @Produces("文本/纯文本") 公共字符串 get_ip() { 返回 ip = hsr.getRemoteAddr(); } }
于 2010-12-14T07:54:13.990 回答
3
从 Zayin 和 Darren 的回答/编辑中得到了一个巨大的和赞赏的提示,我尝试了这个,它也有效。
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("ip")
public String sayIP(@Context HttpServletRequest req, @QueryParam("p1") String p1, ...) {
return req.getRemoteAddr();
}
于 2012-06-06T02:07:33.197 回答
0
public String getIp(@Context HttpServletRequest req) {
return req.getRemoteHost();
}
于 2013-10-29T05:35:31.200 回答