Wie kann ich die tatsächliche Anforderung anzeigen, die Jersey generiert und an den Server sendet? Ich habe Probleme mit einer bestimmten Anfrage und der Mitarbeiter, der den Webserver betreibt, hat darum gebeten, die vollständige Anfrage (mit Headern und dergleichen) anzuzeigen.
88
Antworten:
Wenn Sie nur die Jersey Client API verwenden, sollte LoggingFilter ( Clientfilter ) Ihnen helfen:
Andernfalls können Sie die Anforderung und die Antwort auf dem Server erneut mit einem anderen LoggingFilter (Containerfilter) protokollieren .
quelle
addFilter
Methode gibt es in Jersey 2.x nicht. Wie benutzt du das jetzt?Seit Jersey 2.23 gibt es eine, die
LoggingFeature
Sie verwenden können. Das folgende Beispiel ist etwas vereinfacht. Bitte beachten Sie, dass Sie die Funktion auch registrieren könnenWebTarget
.JavaDoc von
LoggingFeature
sagt, dass die Anfrage "und / oder" die Antwort protokolliert wird lol. Auf meinem Computer sind beide protokolliert.quelle
@ ivan.cikic antwortet für Jersey 1.x. So geht's in Jersey 2.x:
Das ist irrelevant, aber ich muss mich nur beschweren: Das Neue
LoggingFilter
ist wirklich ärgerlich, weil es Sie zwingt, Java Util Logging zu verwenden. Es wäre besser, wenn ich die Kontrolle über den Logger hätte. Scheint ein Rückschritt im Design zu sein.quelle
LoggingFilter(Logger logger, boolean PrintEntity)
Konstruktor verwendet, aber selbst das druckt keine Cookies.LoggingFeature
druckt nichts undLoggingFilter
druckt ... 🤷♂️Alle diese Antworten sind ziemlich nah beieinander, aber es fehlt die Einstellung, um den Anforderungs- und Antworttext zu protokollieren. Zumindest mit Jersey 2.30.1 kann ich auf diese Weise die Anforderung und Antwort einschließlich ihrer jeweiligen Körper protokollieren:
Technisch könnten die
Level.All
und8192
Werte seinnull
. Ich stelle sie hier nur zur Verfügung, um sie kurz zu fassen.quelle