【问题标题】:Get remote address when using jersey with embedded grizzly使用带有嵌入式灰熊的球衣时获取远程地址
【发布时间】:2012-07-28 00:55:53
【问题描述】:

我一直在寻找解决这个问题的方法,但没有成功。我发现的最新帖子可以追溯到 2010 年。我正在使用 jersey 1.12 和嵌入式 grizzly 2.2.1。

如果我理解正确,除非我将球衣资源部署在 servlet 容器下,否则我无法在其中注入 HttpServletRequest。有解决办法吗?

【问题讨论】:

标签: jersey grizzly


【解决方案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());
  }
}

【讨论】:

    【解决方案2】:

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

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-28
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 2022-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多