1.日志追踪系统需要获取到接口返回body,因此需要重写getWritter()避免getOutputStream() has been call的异常。
public class HttpServletResponseCopier extends HttpServletResponseWrapper {
private int statusCode;
private ServletOutputStreamCopier streamCopier;
private PrintWriterCopier writerCopier;
private boolean useWriter;
public HttpServletResponseCopier(HttpServletResponse response) throws IOException {
super(response);
useWriter = true;
}
@Override
public ServletOutputStream getOutputStream() throws IOException {
if (writerCopier != null) {
throw new IllegalStateException("getWriter() has already been called on this response.");
}
if (streamCopier == null) {
useWriter = false;
streamCopier = new ServletOutputStreamCopier();
}
return streamCopier;
}
@Override
public PrintWriter getWriter() throws IOException {
if (streamCopier != null) {