4

私はこの問題の解決策を探していましたが、成功しませんでした。私が見つけた最新の投稿は 2010 年のものです。グリズリー 2.2.1 が埋め込まれた jersey 1.12 を使用しています。

私の理解が正しければ、ジャージー リソースをサーブレット コンテナーの下にデプロイしない限り、それらに 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

私の場合、nginx の背後でロード バランサーとして実行されているスタンドアロンの Jersey クラスターがありました。したがって、回避策は、Jersey からも簡単にアクセスできるリモート アドレスをリクエスト ヘッダーとして渡すことでした。

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