我使用spring中的streamingresponsebody将结果集流化为outputstream。我们有一个自定义的java过滤器,它使用contentcachingresponewrapper。
由于这个过滤器,我的输出是空的,当我删除过滤器时,我能够得到流数据
我也在filter的末尾添加了responsewrapper.copybodytoresponse(),但没有结果。
下面是我的过滤器。
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
try {
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper((HttpServletResponse) response);
chain.doFilter(request, responseWrapper);
boolean isInternalRequest = validateIfReqIsInternal();
//Implementing Output Encoding only for External Calls
if(!isInternalRequest) {
outputEncoding(responseWrapper);
}
responseWrapper.copyBodyToResponse();
} catch (Exception e) {
logger.error("Error with Input Payload");
throw new ServletException("Error with Input Payload {} ", e);
}
}
我想知道是否有解决这个问题的办法。
暂无答案!
目前还没有任何答案,快来回答吧!