JasperPrint não retorna erro mas não deixa o código passar

Olá pessoal, estou fazendo um método que irá gerar um PDF para impressão, construir o relatório no Ireport e importei para meu projeto, porém na hora que vou enviar uma lista para o relatório o código não roda, ele não passa e também não me retorna erro. Alguém já passou por isso? O que poderia ser. Segue o código ->

public void imprimirRelatorioCnae(Long id){

	Map<String, Object> params = new HashMap<String, Object>();
	
	cnaeToLegalSelecionado = service.getById(CnaeToLegal.class, id,"listCnaePublicacao");
	
	listCnaeSelecionado = cnaeToLegalSelecionado.getListCnaePublicacao();
	
	params.put("NUM_SORTEIO",cnaeToLegalSelecionado.getSorteioToLegal().getNumeroSorteio().toString());
	params.put("DATA_INICIO",cnaeToLegalSelecionado.getSorteioToLegal().getDataInicioSorteioFormat());
	params.put("DATA_SORTEIO",cnaeToLegalSelecionado.getSorteioToLegal().getDataSorteioFormat());
	params.put("SITUACAO",cnaeToLegalSelecionado.getSorteioToLegal().getSituacao().name());
	System.out.println("Parametros foram puts");
	InputStream jasperStream = this.getClass().getResourceAsStream("/relatoriosnfce/relatorioCnae.jasper");
	
	try {
		JasperReport jasperReport = (JasperReport) JRLoader.loadObject(jasperStream);
		System.out.println(2);
		JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,params, new JRBeanCollectionDataSource(listCnaeSelecionado) );
		System.out.println("Mandei a lista");
		getHttpResponse().setContentType("application/pdf");
		getHttpResponse().addHeader("Content-Disposition", "attachment;filename=relatorioCnaes.pdf");

		JasperExportManager.exportReportToPdfStream(jasperPrint, getHttpResponse().getOutputStream());

		context().renderResponse();
		context().responseComplete();
		
		
	} catch (JRException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
}

Pessoal? Please.

Olá Victtor, infelizmente a muitos anos não gero relatorio com essa ferramenta, porém qual a IDE que você está usando ja tentou colocar um break point para debugar exatamente a linha que o programa para?

percebi que você está capturando duas exceptions especificas(JRException e IOException) coloca um catch para pegar uma exception mais generica quando for debugar catch(Exception e){e.getMessage()}.

Se o código não processa, algum erro tem de retornar.

1 curtida

Consegui aqui amigo, obrigado. O problema estava inicialmente na importação das dependências no maven (Pra quem tiver com o mesmo problema)


com.lowagie
itext
2.1.7


net.sf.jasperreports
jasperreports
5.5.1


org.codehaus.groovy
groovy-all
2.4.15


org.apache.poi
poi
3.5-FINAL


javax.servlet
servlet-api
2.4
provided

Outra questão que não estava me mostrando nada era o fato do meu ajax está true na aplicação fazendo com que o meu arquivo nunca fosse lançado na tela. Mas fiquei curioso pra saber qual ferramente você usa? (O iReport é bom mas é um pouco chato). Abraços!

No ultimo projeto que eu estava trabalhando, estava usando o BIRT, mas só estava usando essa porque era obrigado mesmo…kk.

hoje estou focando somente em front-end, no máximo gero relatório com algum plugin PDF(make PDF) com js mesmo, mas é bem difícil de acontecer.

1 curtida