[RESOLVIDO] Disponibilizar arquivo para download com JSF

Pessoal,
Eu tenho uma rotina que gera um relatório, criptografa (usando PGP) e eu preciso disponibilizar esse arquivo para download ao final do processo. Tentei com a seguinte rotina:

public static void download(byte[] arquivo, String filename, String mimeType) { 
	        
		 	HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
		 	response.addHeader("Content-Disposition", "attachment; filename=" + filename);
	        response.setContentLength(arquivo.length);

	        try {
	            response.setContentType(mimeType);
	            response.getOutputStream().write(arquivo);
	            response.getOutputStream().flush();

	            FacesContext.getCurrentInstance().responseComplete();
	        }catch (Exception e) {
		}
	    }

porém o browser “abre” o arquivo e mostra na tela o conteúdo… Alguém tem idéia do que possa ser ??

se me lembro bem, tem que setar no header o content-type

numa pesquisa rápida no google (response java header content-type) encontrei esse link: http://www.apl.jhu.edu/~hall/java/Servlet-Tutorial/Servlet-Tutorial-Response-Headers.html

Vê se te ajuda.

Resolvido, substitui o botão que chamava essa funcionalidade por um <h:commandButton> e funcionou corretamente

Obrigado, troquei o commandbutton por h e deu certo também, antes estava utilizando a4j, ele sempre renderizava a mensagem na tela.