Java 重写getWriter(),服务器返回错误503(奇怪?)
您好,我遵循此链接中的代码: 然而,服务器返回错误503,这真的很奇怪吗 这是我的代码:Java 重写getWriter(),服务器返回错误503(奇怪?),java,servlets,servlet-filters,Java,Servlets,Servlet Filters,您好,我遵循此链接中的代码: 然而,服务器返回错误503,这真的很奇怪吗 这是我的代码: final CopyPrintWriter writer = new CopyPrintWriter(servletresponse.getWriter()); chain.doFilter(servletrequest, new MyResponseWrapper( (HttpServletResponse) servletresponse
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。同时从日志编写器返回一个空字符串?原因可能是什么
编辑:删除与CopyPrintWriter相关的代码,而不是覆盖getWriter(),服务器返回html OK。错误可能在您的
MyResponseWrapper
类中。可能是因为您正在创建一个编写器,而过滤器调用后的servlet调用是通过从HttpServletResponse.getOutputStream()获取内容来将内容写入流 我不确定错误是否在包装器类中,因为它只是一个覆盖getOutputStream的包装器,在这里我使用TeeOutputStream来分支流并从那里记录它。servlet是一个返回“text/html”类型内容的servlet。