streamingresponsebody和contentcachingresponsewrapper

wribegjk  于 2021-07-06  发布在  Java
关注(0)|答案(0)|浏览(400)

我使用spring中的streamingresponsebody将结果集流化为outputstream。我们有一个自定义的java过滤器,它使用contentcachingresponewrapper。
由于这个过滤器,我的输出是空的,当我删除过滤器时,我能够得到流数据
我也在filter的末尾添加了responsewrapper.copybodytoresponse(),但没有结果。
下面是我的过滤器。

  1. @Override
  2. public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
  3. throws IOException, ServletException {
  4. try {
  5. ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper((HttpServletResponse) response);
  6. chain.doFilter(request, responseWrapper);
  7. boolean isInternalRequest = validateIfReqIsInternal();
  8. //Implementing Output Encoding only for External Calls
  9. if(!isInternalRequest) {
  10. outputEncoding(responseWrapper);
  11. }
  12. responseWrapper.copyBodyToResponse();
  13. } catch (Exception e) {
  14. logger.error("Error with Input Payload");
  15. throw new ServletException("Error with Input Payload {} ", e);
  16. }
  17. }

我想知道是否有解决这个问题的办法。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题