Relatorio não é visualizado no browser [Resolvido]

1 resposta
mhbp

eae galera blz? to apanhando aki do jasper report ja tem 3 dias entao se alguem puder ajudar ,dar uma dica, uma luz!!!
eu ficaria muito grato =D.

O projeto em que trabalho usa jasper 3.0 e tem uns relatorios simples funcionando perfeitamente.
Mas o relatorio que eu estou implemntando ele tem 4 quebras e estou o subrelatorios para faze-las.

Entao para carregar os .jasper eu faço assim:

InputStream iStreamSubRelatorio = (InputStream) this.getClass().getClassLoader().getResourceAsStream(caminhoSubRelatorio);
map.put(“subRelatorioStream”, iStreamSubRelatorio );

InputStream iStreamSubRelatorio_2 = (InputStream) this.getClass().getClassLoader().getResourceAsStream(caminhoSubRelatorio_2);
map.put(“subRelatorioStream_2”, iStreamSubRelatorio _2);

InputStream iStreamSubRelatorio_3 = (InputStream) this.getClass().getClassLoader().getResourceAsStream(caminhoSubRelatorio_3);
map.put(“subRelatorioStream_3”, iStreamSubRelatorio _3);

.
.
.

Entao quando eu testo ele rodando jse o relatorio é gerado perfeitamente.
Mas quando eu peço para ser gerado na webapp(usa jsf) e visualiza-lo apareçe somente o binario no meu browser.
Então para me certificar que ele gerava o relatorio correto gerei o pdf no hd e ele esta normal.

código para gerar o pdf na web:

.

.

.

FacesContext facesContext = FacesContext.getCurrentInstance();			

HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
JasperPrint j = relatorio.construir(); 
		
		JasperManager.printReportToPdfFile(j,"C:/teste.pdf");
		byte[] bytes = JasperExportManager.exportReportToPdf(j);
		if (bytes != null && bytes.length > 0) {
			response.setContentType("application/pdf");
			response.setContentLength(bytes.length);				
			//response.setHeader("Content-Disposition", "attachment;filename="  + DateUtil.retornaDataAtualSistema(DateUtil.FORMATO_DDMMYYYYHHmmss) + ".pdf");
			response.setHeader("Content-Disposition", "inline;filename=\""  + DateUtil.retornaDataAtualSistema(DateUtil.FORMATO_DDMMYYYYHHmmss) + ".pdf\"");

			ServletOutputStream ouputStream = response.getOutputStream();
			
			ouputStream.write(bytes, 0, bytes.length);
			facesContext.responseComplete();
			ouputStream.flush();
			ouputStream.close();
		}

.
.
.

Eu penso que talvez a forma como esta conectada os subrelatorios não esta ideal.
Porque depois eu passo por parametro os InputStream’s que contem o caminhos dos .jasper

Desde já agradeço a atenção de todos.

1 Resposta

mhbp

[RESOLVIDO]
Encontrei a resposta no topico => Problema na exibição de relatório jasperReports pdf no Browser

Wislanildo
diz:
"
Pessoal consegui resolver o problema, a requisição ao gerador de relatorio Jasper estava sendo feita via ajax “a4j:commandLink” pois a aplicação é em JSF com richfaces, o problema foi resolvido alterando a requisição ao gerador de relatorio para requisição html com “<h:commandLink>”.

Bruno maomeH do grupo javasf foi quem me deu a dica, e eu repasso ela agora.
"

Criado 14 de março de 2011
Ultima resposta 14 de mar. de 2011
Respostas 1
Participantes 1