我一直在寻找这个问题的解决方案但没有成功。我发现的最新帖子可以追溯到2010年。我使用的是带有嵌入式灰熊2.2.1的球衣1.12。
如果我理解正确,除非我在servlet容器下部署我的jersey资源,否则我不能在其中注入HttpServletRequest。有解决方法吗?
答案 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;