我正在JSF和spring中创建一个项目,其主要目的是在浏览器中生成PDF文件。一切似乎都很好,pdf也生成了但是在控制台上我得到了这个例外。任何人都有这个想法吗?我搜索过并发现许多人都有这个问题,但我找不到任何解决方案。
SEVERE: Error Rendering View[/WebPages/SearchPages/index.xhtml]
java.lang.IllegalStateException: PWC3991: getOutputStream() has already been called for this response
我在创建输出流对象时遇到此错误
HTTPServletResponse response = (HTTPServletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
ServletOutputStream out = response.getOutputStream();
我的创作或任何其他原因是否有任何问题?任何帮助都会非常明显
您需要告诉JSF您自己已经完成了HTTP响应,否则在操作方法完成后,JSF仍将继续执行默认的RENDER_RESPONSE作业,这将导致此异常,因为响应已经提交。
你可以通过在action方法中调用FacesContext#responseComplete()
来做到这一点。
了responseComplete
public abstract void responseComplete()
向JavaServer Faces实现发出信号,表明已生成此请求的HTTP响应(例如HTTP重定向),并且请求处理生命周期应在当前阶段完成后立即终止。