I need to get a Remote IP Address in my Spring Web app.
Normally, this is done through the HttpServletRequest.getRemoteAddr() method. The question is how to get the HttpServletRequest object in Spring.
I found this solution online:
and add the following listener in web.xmlCode:String remoteAddress = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest().getRemoteAddr();
Code:<listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener>
Unfortunately that doesn't work for me. I get this error:
java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
I'm not clear on what to do. Can anyone provide code that works? Thanks


Reply With Quote