【发布时间】:2009-10-29 04:17:38
【问题描述】:
我正在使用 JAX-WS,但在检索使用 Web 服务的客户端信息时遇到问题。我发现了如何使用 JAX-RPC 和 Apache Tomcat Axis 来实现,但不知道如何使用 JAX-WS。有人对此有想法吗?
【问题讨论】:
标签: java web-services jax-ws ip
我正在使用 JAX-WS,但在检索使用 Web 服务的客户端信息时遇到问题。我发现了如何使用 JAX-RPC 和 Apache Tomcat Axis 来实现,但不知道如何使用 JAX-WS。有人对此有想法吗?
【问题讨论】:
标签: java web-services jax-ws ip
这个呢:
@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());
}
}
【讨论】:
或者这个:
@Path("终端") 公共类终端{ @Context 私有 javax.servlet.http.HttpServletRequest hsr; @得到 @Path("get_ip") @Produces("文本/纯文本") 公共字符串 get_ip() { 返回 ip = hsr.getRemoteAddr(); } }【讨论】:
从 Zayin 和 Darren 的回答/编辑中得到了一个巨大且值得赞赏的提示,我尝试了这个,它也有效。
@GET
@Produces(MediaType.TEXT_PLAIN)
@Path("ip")
public String sayIP(@Context HttpServletRequest req, @QueryParam("p1") String p1, ...) {
return req.getRemoteAddr();
}
【讨论】:
public String getIp(@Context HttpServletRequest req) {
return req.getRemoteHost();
}
【讨论】: