经过几个小时的努力,我终于找到了解决方案。
简而言之,
ContentCachingResponseWrapper.copyBodyToResponse()应该在过滤方法的最后调用。
ContentCachingResponseWrapper通过从响应输出流中读取响应主体来缓存响应主体。因此,流变为空。
ContentCachingResponseWrapper.copyBodyToResponse()应当将响应写回到输出流。

经过几个小时的努力,我终于找到了解决方案。
简而言之,
ContentCachingResponseWrapper.copyBodyToResponse()应该在过滤方法的最后调用。
ContentCachingResponseWrapper通过从响应输出流中读取响应主体来缓存响应主体。因此,流变为空。
ContentCachingResponseWrapper.copyBodyToResponse()应当将响应写回到输出流。