Solicitud JSON de impresión JAX-RS 2
Me gustaría poder imprimir la carga útil JAX-RS 2 JSON desde la solicitud, independientemente de la implementación real en mi servidor de aplicaciones.
He intentado soluciones sugeridas en SO, pero todas incluyen binarios de la implementación real (como Jersey y similares), y solo se me permite usar javaee-api v 7.0 en mi aplicación.
Intenté implementar ClientRequestFilter y ClientResponseFilter en mi Cliente, pero no contienen entidades serializadas.
Aquí hay un ejemplo de cliente:
WebTarget target = ClientBuilder.newClient().register(MyLoggingFilter.class).target("http://localhost:8080/loggingtest/resources/accounts");
Account acc = target.request().accept(MediaType.APPLICATION_JSON).get(account.Account.class);
Y aquí está la implementación de MyLoggingFilter:
@Provider
public class MyLoggingFilter implements ClientRequestFilter, ClientResponseFilter {
private static final Logger LOGGER = Logger.getLogger(MyLoggingFilter.class.getName());
@Override
public void filter(ClientRequestContext requestContext) throws IOException {
LOGGER.log(Level.SEVERE, "Request method: {0}", requestContext.getMethod());
}
@Override
public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {
LOGGER.log(Level.SEVERE, "Response status: {0}", responseContext.getStatus());
}
}