HttpServletRequest#getRemoteAddr()返回NULL

时间:2012-01-20 07:47:10

标签: java servlets

为什么HttpServletRequest.getRemoteAddr()有时会返回null ?对于大约2个相同的请求,返回null没有明显的原因。

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

这可能是特定servletcontainer或使用的代理中的错误或配置错误。查找您正在使用的那个,检查其版本并检查此错误是否已经报告给其维护者,并检查是否有可以升级的更新版本。

答案 2 :(得分:0)

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