getOutputStream() has already been called for this response ao tentar exibir PDF

1 resposta
Diego_Adriano

galera, bom dia .. Estou tendo esse erro ao tentar exibir o PDF no browser: "getOutputStream() has already been called for this response"
Porém, com o mesmo código se eu abrir usando o Desktop ele funciona ...

public void mostraNaTela(List<Boleto> boletos){
	
	try {
			
		//INFORMANDO O TAMPLATE PERSONALIZADO 
		File tamplatePersonalizado = new File(ClassLoaders.getResource("/BoletoCarne3PorPagina.pdf").getFile());
		
		byte[] pdfAsByte = groupInPagesReturnByte(boletos, "Carne3PorPagina.pdf", tamplatePersonalizado);
			
		HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
			
		try {
				
			response.setContentType("application/pdf");
			response.setHeader("Content-Disposition", "attachment; filename=Carne3PorPagina.pdf");
				
			OutputStream outPut = response.getOutputStream();
			outPut.write(pdfAsByte);
			response.flushBuffer();
				
			FacesContext.getCurrentInstance().getResponseComplete();
				
		} catch (IOException e) {
			e.printStackTrace();
		}
		 
		} catch (Exception e) {
			System.err.println("Erro ao Mostrar: "+e.getMessage());
	}
	
}

1 Resposta

E

vc deve estar executando alguma ação depois de ter enviado o arquivo

Ex: depois de chamado FacesContext.getCurrentInstance().getResponseComplete(); vc não pode direcionar pra uma tela pois a resposta ja foi enviada de volta…

Criado 26 de setembro de 2014
Ultima resposta 26 de set. de 2014
Respostas 1
Participantes 2