logging - How to log request body in JAX-RS client -
i need see request body client jax-rs request in order verify serialization works correct , reuse request test clients postman.
i know it's possible activate logging jersey using example resource.addfilter(new com.sun.jersey.api.client.filter.loggingfilter());
. however, don't use jersey or resteasy implementation directly, abstracted via jax-rs api:
final webtarget target = clientbuilder.newbuilder().build().target("http://localhost:8080");
how can enable logging here?
result
the answer @peeskillet + this snippet.
however close()
method snippet not being invoked jax-rs implementation (org.jboss.resteasy:resteasy-client-3.0.11.final
in case).
jax-rs 2.0 (which looks you're using), has clientrequestfilter
. can register client
or webtarget
. filter
method, can entity, , logging
public class loggingfilter implements clientrequestfilter { private static final logger log = logger.getlogger(loggingfilter.class.getname()); @override public void filter(clientrequestcontext requestcontext) throws ioexception { log.log(level.info, requestcontext.getentity().tostring()); } } [...] client client = clientbuilder.newclient(); client.register(new loggingfilter());
also clientrequestcontext
api other goodies might find interesting.
update
see also:
- jax-rs 2 print json request, complete/better implementation.
Comments
Post a Comment