4

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

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

4

2 回答 2

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());
  }
}
于 2014-03-15T10:52:55.197 回答
0

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

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
于 2012-09-28T12:06:31.910 回答