JERSEY: Wie abrufen die aufrufende IP oder URI verwenden injection-annotation?
Ich habe einen REST - Server hier mit JERSEY. Muss ich log die IP (besser der DNS) des aufrufenden Clients.
Kann jemand Punkt, eine Richtung, die injection-Annotationen zu verwenden ?
Gesucht "@Context", aber nicht finden konnten, etwas passendes.
Dank
Gerd
Du musst angemeldet sein, um einen Kommentar abzugeben.
könnte man hinzufügen
@Context HttpServletRequest request
als einen parameter in der request-handler-Methode. Und dann Holen Sie sich ein halten Sie die client-IP mitrequest.getRemoteAddr()
import javax.ws.rs.core.Context
Ist bei Grizzly-Jersey-combo, das ist der Weg, es zu tun:
Option 2 für die Grizzly-Jersey-combo.
Platz in der Deklaration der Klasse (extender von ContainerRequestFilter in meinem Fall)
später im code verwenden Sie diese.
Ich habe gegraben, um und ich habe festgestellt, das Auflösung in der jersey ' s jira.
Beachten Sie, dass Sie empfehlen, um verwendet werden, @Inject statt @Kontext
Ich habe versucht, zu verwenden
dem wird empfohlen, ist weit verbreitet, aber servletRequest war immer null.
*Kommentar servletRequest war null, weil ich es gewohnt war GrizzlyHttpServerFactory für die Erstellung von HttpServer. Wenn Sie wollen, um servletRequest, dann müssen Sie es bereitstellen, mit WebappContext. Schauen Sie hier für details