您好我正在关注此链接中的代码:Capture and log the response body
然而服务器返回错误503这真的很奇怪?
这是我的代码:
final CopyPrintWriter writer = new CopyPrintWriter(servletresponse.getWriter());
chain.doFilter(servletrequest, new MyResponseWrapper(
(HttpServletResponse) servletresponse){
@Override
public PrintWriter getWriter() {
return writer;
}
});
log.debug("Test - " + writer.getCopy());
writer.close();
在过滤器类中,我添加了一些日志记录:
12:03:22,404 INFO MyFilter:43 - Before invoking chain
12:03:24,107 DEBUG MyFilter:59 - Test -
12:03:24,108 INFO MyFilter:73 - After invoking chain
客户端从此代码接收HTTP错误503。而且从日志writer.getCopy()返回一个空字符串?可能是什么原因?
编辑:删除与CopyPrintWriter相关的代码而不是覆盖getWriter(),服务器使用html返回OK。
答案 0 :(得分:0)
错误可能在您的MyResponseWrapper
班级。
答案 1 :(得分:0)
可能是因为您正在创建一个编写器,而过滤器调用之后的servlet调用是通过从HttpServletResponse.getOutputStream()获取内容来将内容写入流中。