【发布时间】:2016-08-09 03:08:15
【问题描述】:
我希望能够从请求中打印 JAX-RS 2 JSON 有效负载,而不管我的应用程序服务器上的实际实现如何。
我在 SO 上尝试过建议的解决方案,但都包括来自实际实现的二进制文件(如 Jersey 和类似的),并且我只能在我的应用程序中使用 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());
}
}
【问题讨论】:
标签: java json jakarta-ee logging jax-rs