Recarregar página depois de um download - JSF/Primefaces [RESOLVIDO]

Preciso de uma solução onde depois do download de um arquivo a página seja recarregada.

Quanto tento fazer isso num “action” depois do download recebo:

Exception when handling error trying to reset the response.: java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:436) [jbossweb-7.0.10.Final.jar:] at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.springframework.security.web.firewall.FirewalledResponse.sendRedirect(FirewalledResponse.java:25) [spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.springframework.security.web.context.SaveContextOnUpdateOrErrorResponseWrapper.sendRedirect(SaveContextOnUpdateOrErrorResponseWrapper.java:107) [spring-security-web-3.2.3.RELEASE.jar:3.2.3.RELEASE] at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:170) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final] at org.jboss.weld.servlet.ConversationPropagationFilter$1.sendRedirect(ConversationPropagationFilter.java:83) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31] at com.sun.faces.context.ExternalContextImpl.redirect(ExternalContextImpl.java:576) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:182) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130) [jsf-impl-2.1.5-jbossorg-1.jar:2.1.5-SNAPSHOT] at javax.faces.component.UICommand.broadcast(UICommand.java:315) [jboss-jsf-api_2.1_spec-2.0.0.Final.jar:2.0.0.Final]

Estou baixando assim:

[code] private void baixarArquivo(byte[] bytes, String nomeAquivo) throws IOException {

	FacesContext facesContext = FacesContext.getCurrentInstance();

	HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
	ServletOutputStream servletOutputStream = response.getOutputStream();

	response.setContentType("application/pdf");
	response.setHeader("Content-Disposition", "attachment;filename=\"" + nomeAquivo + "\"");

	servletOutputStream.write(bytes);
	servletOutputStream.flush();
	servletOutputStream.close();
	facesContext.responseComplete();
}[/code]

Alguém tem alguma ideia?

Posta a solução ai amigão ??? :slight_smile:

Pro meu caso resolveu diretinho como segue:

[code] protected void gerarArquivo(byte[] bytes, String nomeAquivo) throws IOException {
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
ServletOutputStream servletOutputStream = response.getOutputStream();

	response.setContentType("application/pdf");
	response.setHeader("Content-Disposition", "attachment;filename=\"" + nomeAquivo + "\"");
	response.setHeader("Refresh", "3; url = \"listagens.jsf\""); // AQUI

	servletOutputStream.write(bytes);
	servletOutputStream.flush();
	servletOutputStream.close();
	facesContext.responseComplete();
}

[/code]