使用带有嵌入式grizzly的jersey时获取远程地址

使用带有嵌入式grizzly的jersey时获取远程地址,jersey,grizzly,Jersey,Grizzly,我一直在寻找解决这个问题的办法,但没有成功。我发现的最新帖子可以追溯到2010年。我正在使用jersey 1.12和嵌入式grizzly 2.2.1 如果我理解正确,除非我将jersey资源部署在servlet容器下,否则我无法将HttpServletRequest注入其中。有解决办法吗?在我的例子中,我们有一个独立的Jersey集群作为负载平衡器在nginx后面运行。 因此,解决方法是将远程地址作为请求头传递,请求头也可以从Jersey轻松访问: proxy_set_header X-

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


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

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

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
使用以下命令:

@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());
  }
}
似乎你所指的帖子有一些代码可以使用