Veröffentlicht 10. Februar 201015 j Hallo zusammen, ich implementiere momentan werbservices auf Basis von Jersey (restful). Funktioniert auch wunderbar soweit. Nur würde ich bei meinen POST/GET Requests gerne die IP der Anfrageseite loggen. Meine Frage wäre also, wie komme ich mit Jersey noch da dran? Ein HttpRequest "sehe" ich ja gar nicht mehr. Gibt ja nur dies zum Beispiel: [JAVA] @Get @Consumes("application/xml") public Response getSomething() throws Exception { //do something and build a response for the request return Response.ok(something).build(); } [/JAVA] Gibt es evtl eine Annotation um doch an den Request zu kommen? Oder aber die IP direkt? Google hat leider gar nicht geholfen. :old mfg KhanQ
10. Februar 201015 j Ich habe den Verdacht, dass @Context helfen könnte. Allerdings finde ich keine Möglichkeit an die IP zu kommen. Vielleicht suche ich an der falschen Stelle?!
11. Februar 201015 j Dein Verdacht ist nicht so falsch: https://jsr311.dev.java.net/nonav/releases/1.0/spec/spec3.html#x3-520005 Mit @Context kannst Du z.B. den HttpServletRequest an die Service-Methode übergeben. Und daraus kannst Du wieder die Client IP ermitteln. Peter
11. Februar 201015 j Ach toll, Danke sehr. Hatte gerstern einfach mal versucht an das HttpRequest über @Context zu gelangen. An HttpServletRequest hab ich nicht gedacht.
11. Februar 201015 j Also ich benutze com.sun.jersey.api.container.httpserver.HttpServerFactory um mir ein Server-Objekt erzeugen zu lassen, welches ich dann starte. Dabei bleibt @Context private HttpServletRequest httpServletRequest; stets "null". Hat jemand eine Idee wie ich trotz jersey an die IP komme?
12. Februar 201015 j Kann es denn wirklich sein, dass ich nen kompletten Servletcontainer installieren muss, nur um an die IP eines Requests zu kommen? :eek
15. Februar 201015 j Nachdem die Klasse HttpServletRequest ein Teil der *Servlet*-API ist, klingt es plausibel, dass Du auf ein Objekt dieser Klasse nur aus einem Servlet-Container Zugriff hast. Ansonsten müsste eben Deine Nicht-Servlet-Ablaufumgebung diese Klasse im Zugriff haben und das Objekt bereitstellen. Und dann wäre sie aber schon bald wieder ein Servlet-Container. Ob es andere Möglichkeiten, als die von mir angesprochene gibt, kann ich Dir nicht sagen. Schöne Grüße, Peter
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.