2012-02-29 8 views

答えて

22

あなたの要求ハンドラメソッドへのパラメータとして@Context HttpServletRequest requestを追加することができます。そして、あなたはグリズリー・ジャージーのコンボを使う場合request.getRemoteAddr()

+0

Cool!迅速な対応をお寄せいただきありがとうございます。魅力的な作品です。 – user1226230

+1

RemoteUserは私のためにnullが戻ってきますが、RemoteHostとRemoteAddrは計画どおりに動作します – bobtheowl2

+0

解決方法を試しましたが、「型の不一致:コンテキストから注釈に変換できません。どうすれば解決できますか? – Greenhand

2

とクライアントIPのホールドを取得し、それを実行する方法のthats:

@Context 
private java.lang.ThreadLocal<org.glassfish.grizzly.http.server.Request> grizzlyRequest; 
0

グリズリー・ジャージーコンボのためのオプション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

関連する問題