使用带有嵌入式灰熊的平针织物时获取远程地址

时间:2012-07-28 00:55:53

标签: jersey grizzly

我一直在寻找这个问题的解决方案但没有成功。我发现的最新帖子可以追溯到2010年。我使用的是带有嵌入式灰熊2.2.1的球衣1.12。

如果我理解正确,除非我在servlet容器下部署我的jersey资源,否则我不能在其中注入HttpServletRequest。有解决方法吗?

2 个答案:

答案 0 :(得分:1)

使用以下内容:

@Context org.glassfish.grizzly.http.server.Request req

使用示例:

@Path("/example")
public class SomeResource {

  @POST
  @Consumes("application/x-www-form-urlencoded")
  public void someMethod(@Context Request req) {
    System.out.println(req.getRemoteAddr());
  }
}

答案 1 :(得分:0)

在我的情况下,我们有一个独立的Jersey群集在nginx后面作为负载均衡器运行。 因此,解决方法是将远程地址作为请求标头传递,也可以从Jersey轻松访问:

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;