Relatorio não acho o jrxml

4 respostas
R

Boa tarde a todos,

Tenho tentando emitir um relatorio mais o problema surge no momento de “Achar” o jrxml, ja olhei diversos tutoriais, aki no grupo pesquisei tambem, voltei aos testes e realmente eu tô meio que perdido neste aspecto, ja criei pasta com o arquivo em
diversos lugares do projeto que eu nem sei qual o local que deveria realmente ficar os relatorios

Vou postar o meu codigo abaixo e se alguem puder dar uma ajuda agradeço
a pasta reports esta na raiz do projeto, e também na pasta WEB-INF qdo eu mando o eclipse rodar o projeto posso ver
no Tomcat que o arquivo esta lá mais o programa não reconhece ou não acha e de forma que não consigo prosseguir

public void relatorio() throws JRException {

		try {
	        
		     FacesContext context = FacesContext.getCurrentInstance();
		     HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
		     ServletOutputStream responseStream = response.getOutputStream();

		
			
		     // caminho do jrxml
   		     String jasper = context.getExternalContext().getRealPath("WEB-INF/reports/rcpapel.jrxml");
		
		     InputStream jasperStream = getClass().getClassLoader().getResourceAsStream( jasper );
  		     
                     if (jasperStream == null) {
				throw new ReportException("Erro abrindo arquivo '" + jasper + "' não foi encontrado");
			}
		    
		     response.setContentType("application/pdf");
		     response.setHeader("Content-Disposition", "attachment; filename=\"Produtos.pdf\"");
		     JasperReport report = JasperCompileManager.compileReport(jasperStream);
			
		    
  		     JasperPrint print = JasperFillManager.fillReport(report, null,
  		    		new JRBeanCollectionDataSource( this.papelService.findAll(), false));

 		    JasperExportManager.exportReportToPdfStream(print, responseStream);
	    
		} catch (Exception e) {
			e.printStackTrace();
		}
			    					
		
	}

4 Respostas

LipeJava

Aqui sempre passo o arquivo *.jasper e não o *.jrxml…

fbahia32

vc tem que colocar o seu .jrxml no caminho q vc esta passando no seu codigo.

String jasper = context.getExternalContext().getRealPath("WEB-INF/reports/rcpapel.jrxml");

vc editou seu arquivo .jrxml pelo Ireport ??

R

Sim criei ele pelo Ireport, depois copiei o arquivo e copie em uma pasta no Eclipse, olha ja tenho tres pastas
uma no raiz do projeto, outra na pasta src e outra dentro de web-inf

o arquivo não esta dentro de um jar , mais mesmo assim nao consigo nada com esta instrução,

String jasper = context.getExternalContext().getRealPath("WEB-INF/reports/rcpapel.jrxml");
		
		     InputStream jasperStream = getClass().getClassLoader().getResourceAsStream( jasper );
  		     
                     if (jasperStream == null) {
				throw new ReportException("Erro abrindo arquivo '" + jasper + "' não foi encontrado");
			}
R

Pessoal mudei da seguinte maneira

String jasper = context.getExternalContext().getRealPath("WEB-INF/reports/rcpapel.jrxml");

e lento um tutorial que eu peguei eu mudei para

URL jasper = this.getClass().getResource("/reports/rcpapel.jrxml");

desta forma não houve mais a excessão por não encontrar o arquivo

Criado 29 de novembro de 2011
Ultima resposta 1 de dez. de 2011
Respostas 4
Participantes 3