【问题标题】:How to get webservice client information on webservice hosting machine如何在 Web 服务主机上获取 Web 服务客户端信息
【发布时间】:2017-10-19 05:33:58
【问题描述】:

我已经使用 Netbeans 在机器 A 上部署了一些 web 服务,并且我试图在有人尝试访问它们时记录时间和 IP 信息。 我尝试了以下代码sn-p。

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

但是输出显示的是机器A的IP。

有什么建议吗?

【问题讨论】:

    标签: java web-services netbeans-8


    【解决方案1】:

    虽然这与您尝试过的类似,但它对我来说适用于 SOAP 请求。

    @Resource
    WebServiceContext wsContext;
    
    HttpServletRequest request = (HttpServletRequest)wsContext.getMessageContext().get(SOAPMessageContext.SERVLET_REQUEST);
    
    String remoteIp = request.getRemoteAddr();
    String remoteUser = request.getRemoteUser();
    String remoteHost = request.getRemoteHost();    
    

    【讨论】:

    • @MohsinJavaid - 不想在这里搞笑 - 你确定它不是机器 A 调用你的网络服务吗?
    • 没有。我正在从我的笔记本电脑(机器 B)发送请求。 Web 服务托管在服务器机器(机器 A)上。
    • 我假设他们有不同的 IP。尝试一台绝对不在您网络上的机器怎么样 - 可能是图书馆中的公共机器等
    猜你喜欢
    • 1970-01-01
    • 2012-01-26
    • 2014-09-04
    • 2010-11-26
    • 2011-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    相关资源
    最近更新 更多