ここにはJERSEYを使用してREST-サーバーがあります。呼び出し側クライアントのIP(より良いDNS)を記録する必要があります。JERSEY:注入注釈を使用して呼び出し元IPまたはURIを取得する方法
注入注釈を使用する方向を誰かが指すことができますか?
「@Context」が検索されましたが、何も見当たりませんでした。
おかげ ゲルト
ここにはJERSEYを使用してREST-サーバーがあります。呼び出し側クライアントのIP(より良いDNS)を記録する必要があります。JERSEY:注入注釈を使用して呼び出し元IPまたはURIを取得する方法
注入注釈を使用する方向を誰かが指すことができますか?
「@Context」が検索されましたが、何も見当たりませんでした。
おかげ ゲルト
あなたの要求ハンドラメソッドへのパラメータとして@Context HttpServletRequest request
を追加することができます。そして、あなたはグリズリー・ジャージーのコンボを使う場合request.getRemoteAddr()
とクライアントIPのホールドを取得し、それを実行する方法のthats:
@Context
private java.lang.ThreadLocal<org.glassfish.grizzly.http.server.Request> grizzlyRequest;
グリズリー・ジャージーコンボのためのオプション2。コード使用におけるクラスの宣言で 場所(私の場合ContainerRequestFilterの延長)
@Inject
private javax.inject.Provider<org.glassfish.grizzly.http.server.Request> request;
及び後述。
request.get().getRemoteAddr()
私はresolution in the jersey's jiraを見つけました。彼らはお勧め 注@Inject代わりの@Context
を使用する私は、広く推奨され
@Context
private HttpServletRequest servletRequest;
を使用しようとしたが、ServletRequestのは常にnullでした。
* comment servletRequestは、HttpServerを作成するためにGrizzlyHttpServerFactoryが使用されたため、nullでした。 servletRequestを使用する場合は、WebappContextを使用してそれをデプロイする必要があります。 Take a look here for details
Cool!迅速な対応をお寄せいただきありがとうございます。魅力的な作品です。 – user1226230
RemoteUserは私のためにnullが戻ってきますが、RemoteHostとRemoteAddrは計画どおりに動作します – bobtheowl2
解決方法を試しましたが、「型の不一致:コンテキストから注釈に変換できません。どうすれば解決できますか? – Greenhand