【发布时间】:2017-09-07 05:10:05
【问题描述】:
我想记录整个请求和响应正文。出于记录目的,jax-rs 有过滤器。
public class ResponseLoggingFilter implements ContainerRequestFilter, ContainerResponseFilter {
public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {
System.out.println(IOUtils.toString(requestContext.getEntityStream(), "UTF-8")); // It's always empty string
System.out.println(responseContext.getEntity().toString()); // Here is actual response. It's OK
}
public void filter(ContainerRequestContext requestContext) throws IOException {
System.out.println(IOUtils.toString(requestContext.getEntityStream(), "UTF-8")); // Here is actual response. But this request is empty in main code.
}
}
在响应过滤器中,我无法获取请求正文。 在请求过滤器中我得到它但是:
- 我无法获得请求正文和响应正文之间的链接。
- 一旦从流中写入请求正文,将此流设置为空,我无法在我的主代码中获取它。
我正在使用 Resteasy 3.0.6。
【问题讨论】:
标签: java logging jax-rs resteasy