Я хотел бы иметь возможность печатать JAX-RS 2 JSON с помощью запроса, независимо от фактической реализации на моем сервере приложений.
Я пробовал предлагаемые решения для SO, но все они включают двоичные файлы из реальной реализации (например, Джерси и т.д.), и мне разрешено использовать только javaee-api v 7.0 в моем приложении.
Я попытался реализовать ClientRequestFilter и ClientResponseFilter на моем клиенте, но они не содержат сериализованных объектов.
Вот пример клиента:
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);
И вот реализация 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());
}
}