【问题标题】:HttpServletRequest#getRemoteAddr() returns NULLHttpServletRequest#getRemoteAddr() 返回 NULL
【发布时间】:2012-02-14 19:55:35
【问题描述】:

为什么HttpServletRequest.getRemoteAddr() 返回null有时? 10 个相同的请求中大约有 2 个返回 null,原因不明。

【问题讨论】:

  • @AVD Returning NULL 没有提到那里。
  • 我在运行 JBoss AS 7.1 时遇到了同样的问题。我的服务器每天在短时间内收到大约 9000 个请求 ~= 9GB 的文本。在负载测试期间,对我的 web 服务的一些点击在 getRemoteAddr() 上显示为空。

标签: java servlets


【解决方案1】:

使用Tomcat7。显然getRemoteAddr() 可以返回NULL 如果请求已经被消费,即响应已经发送。它有时甚至会抛出 NPE。无论如何,我的代码都有错误。

【讨论】:

    【解决方案2】:

    这可能是使用的特定 servlet 容器或代理中的错误或配置错误。查找您正在使用的版本,检查其版本并检查此错误是否已报告给其维护人员,并检查是否有可以升级到的更新版本。

    【讨论】:

      【解决方案3】:

      您是否将请求对象传递给另一个线程以异步读取它?在某些 Web 容器中,一旦 servlet 线程完成,请求对象将被回收/重置。然后你可能会在调用request.getRemoteAddr() 时得到null

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-14
        • 1970-01-01
        • 2012-08-18
        • 1970-01-01
        • 2019-07-05
        • 2014-01-25
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多