2012-02-29 16 views

cevap

22

Gerd. Ve sonra Grizzly-Jersey combo kullanmak durumunda request.getRemoteAddr()

+0

Cool! Hızlı yanıt için teşekkürler, bir çekicilik gibi çalışır. – user1226230

+1

RemoteUser benim için null geri döndü, ancak RemoteHost ve RemoteAddr planlanan şekilde çalışıyor – bobtheowl2

+0

Çözümü denedim ancak "Tür uyuşmazlığı: Bağlamı Annotation'a dönüştürülemiyorum". Bunu nasıl çözebilirim? – Greenhand

2

ile istemci IP bir tutmak, bunu yapmak için bir yol şu:

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

Seçenek 2 Grizzly-Jersey combo için. (Benim durumumda ContainerRequestFilter sulandırıcısına) sınıfı beyanında Yeri

@Inject 
private javax.inject.Provider<org.glassfish.grizzly.http.server.Request> request; 

ve daha sonra kodu kullanılıyor bunda.

request.get().getRemoteAddr() 

Etrafa kazdık ve ben resolution in the jersey's jira buldum. onlar tavsiye Not @ Enjekte yerine @Context

kullanılacak Ben yaygın önerilir

@Context 
    private HttpServletRequest servletRequest; 

kullanmayı denedim ama ServletRequest hep boş oldu.

* comment servletRequest boştu, çünkü HttpServer'ı oluşturmak için GrizzlyHttpServerFactory kullanıldı. ServletRequest sahip olmak istiyorsanız, WebappContext ile dağıtmanız gerekir. Take a look here for details

İlgili konular