So melden Sie request-body in JAX-RS client
Muss ich sehen, meine request-body die mit einer client-JAX-RS-Anforderung, um zu überprüfen, dass die Serialisierung funktioniert, korrigieren und wiederverwenden der Antrag für die test-clients wie Briefträger.
Ich weiß, es ist möglich, aktivieren Sie die Protokollierung mit Jersey zum Beispiel resource.addFilter(new com.sun.jersey.api.client.filter.LoggingFilter());
. Allerdings glaube ich nicht Jersey oder RESTEasy Umsetzung direkt, sondern abstrahiert über JAX-RS-API:
final WebTarget target =
ClientBuilder.newBuilder().build().target("http://localhost:8080");
Wie kann ich aktivieren Sie die Protokollierung hier?
Ergebnis
Die Antwort von @peeskillet + dieses snippet.
Aber manchmal wird der close()
Methode aus dem snippet ist nicht aufgerufen wird, durch die JAX-RS-Implementierung (org.jboss.resteasy:resteasy-client-3.0.11.FINAL
in diesem Fall).
LoggingFilter
source-code?Aber wo oder wie kann ich mich registrieren?
Mit
@WebFilter
oder <filter>
.InformationsquelleAutor thomas.mc.work | 2015-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
JAX-RS 2.0 (es sieht aus wie Sie verwenden), hat die
ClientRequestFilter
. Sie können sich mit derClient
oder sogar dieWebTarget
. Aus derfilter
Methode können Sie die Entität, und tun Sie Ihre AnmeldungAuch die
ClientRequestContext
- API für einige andere leckereien, die Sie interessant finden könnte.UPDATE
Siehe Auch:
requestContext.getEntity()
gibt die Entität als Objekt vor der Serialisierung geschieht. Gibt es einen Weg, um die plain-text gesendet wird?Es wird nicht ein string sein (nicht alle Daten sind Zeichenfolgen). Es wird bereits an den Ausgabe-stream (wie Binär-Daten). Zum Beispiel mit JSON/Jackson, der Schriftsteller wird automatisch schreiben Sie Ihr Objekt direkt auf die Anfrage Ausgabe-stream. Sie konnte den stream abfangen, aber was ist der Punkt. Wenn Sie möchten, dass die string-Repräsentationen der Objekte, nur das überschreiben der toString-Methode. Es ist ein Aufwand, aber das scheint das zu sein, was Sie zu beschränkt sind, es sei denn, Sie möchten eine Reihe von arbeiten-um hackish Sachen, die würde ich nicht empfehlen, überhaupt.
Der hintergrund ist, dass ich versuchen zu nutzen, um sowohl die Bibliothek als
jackson-datatype-joda
und ein custom-Jackson-MixIn. Den will ich sehen, serialisiert Ausgang zu beweisen, dass die Serialisierung genannt, die von JAX-RS funktioniert.Sie müssen möglicherweise Marschall das Objekt sich im inneren des filters. Einfach nur so kann ich mir vorstellen. Irgendwie die doppelte Belastung wenn. Möglicherweise gibt es andere Möglichkeiten, aber es ist nicht wirklich etwas, was ich untersucht haben.
Die Website ist nicht mehr verfügbar... könnten Sie teilen, was Sie gefunden haben?
InformationsquelleAutor Paul Samsotha