如何从ContainerRequestContext JERSEY 2.1获取IP?

unk*_*its 8 java ip jersey request

我的代码是这样的:

public void filter(ContainerRequestContext request) throws IOException 
  {
   // can I get Ip from request?????

 }
Run Code Online (Sandbox Code Playgroud)

我如何从中获取IP地址request

Ale*_*lex 12

根据这个JIRA票据,基于这个讨论,他们添加了对注入HttpServletRequest过滤器的支持,上面的JIRA的代码片段如下所示:

public class MyRequestFilter implements ContainerRequestFilter {

  @Context
  private HttpServletRequest servletRequest;
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用HttpServletRequestAPI获取远程IP,请在此处查看完整的Javadoc,摘录:

的getRemoteAddr

java.lang.String getRemoteAddr()

返回发送请求的客户端或最后一个代理的Internet协议(IP)地址.对于HTTP servlet,与CGI变量REMOTE_ADDR的值相同.

返回:

包含发送请求的客户端的IP地址的String

  • 没有为我工作:(我有以下错误:`java.lang.IllegalArgumentException:在尝试为 org.glassfish.jersey.process.internal.RequestScoped 范围内的 javax.servlet.http.HttpServletRequest 创建代理时创建代理时发生错误` (2认同)