Khanq Geschrieben 10. Februar 2010 Geschrieben 10. Februar 2010 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 Zitieren
Khanq Geschrieben 10. Februar 2010 Autor Geschrieben 10. Februar 2010 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?! Zitieren
kingofbrain Geschrieben 11. Februar 2010 Geschrieben 11. Februar 2010 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 Zitieren
Khanq Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 Ach toll, Danke sehr. Hatte gerstern einfach mal versucht an das HttpRequest über @Context zu gelangen. An HttpServletRequest hab ich nicht gedacht. Zitieren
Khanq Geschrieben 11. Februar 2010 Autor Geschrieben 11. Februar 2010 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? Zitieren
Khanq Geschrieben 12. Februar 2010 Autor Geschrieben 12. Februar 2010 Kann es denn wirklich sein, dass ich nen kompletten Servletcontainer installieren muss, nur um an die IP eines Requests zu kommen? :eek Zitieren
kingofbrain Geschrieben 15. Februar 2010 Geschrieben 15. Februar 2010 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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.