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
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?!
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
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.
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?
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden