Erro na Geração de Relatório!

5 respostas
maxdavis

Eu tinha um projeto antigo e precisei migrar ele pra uma arquitetura melhor e mais recente! Mas quando eu transferir meu relatórios aconteceu um erro na hora de suas Chamada, segue o erro abaixo.

Agradeço todos aqueles que propuserem a ajudar :slight_smile:

Erro Gerado!

Caused by: java.io.InvalidClassException: net.sf.jasperreports.engine.base.JRBaseReport; local class incompatible: stream classdesc serialVersionUID = 604, local class serialVersionUID = 10200

Metodos

private String PATH_RELATORIO_LIBERAR_PROCESSOS = "/relatorios/jasper/RProcessosLiberados.jasper";

@SuppressWarnings("deprecation")
	public String imprimir() throws BusinessException {

		try {
			String dataInic = getDataInicial();
			String dataFina = getDataFinal();
			String codiForn = isFlagForn() ? null : getCodiForn();
			String empeGuia = this.getEmpeGuia();//(getEmpeGuia().equals("Empenho") ? "e" : "g");

			// pegar ano da session
			this.setAnoReferencia((String) super.obterRequest().getSession().getAttribute("anoReferencia"));
			String anoRefe = this.getAnoReferencia();

			// data como parametro
			if (!isFlagData()) {
				dataInic = dataInic + " 00:00:00";
				dataFina = dataFina + " 23:59:59";
			} else {
				dataInic = "01/01/1994 00:00:00";
				dataFina = dataFina + " 23:59:59";
			}

			dataInic = DataUtil.formatar(DataUtil.converter(dataInic,
			"dd/MM/yyyy HH:mm:ss"), "yyyy-MM-dd HH:mm:ss");

			dataFina = DataUtil.formatar(DataUtil.converter(dataFina,
			"dd/MM/yyyy HH:mm:ss"), "yyyy-MM-dd HH:mm:ss");

			// pegar sql da consulta da tela
			String consulta = processoEmpenhoService
					.getSqlProcessosPagosNaoLiberados(dataInic, dataFina,
							codiForn, empeGuia, anoRefe);

			Map<String, String> parametros = new HashMap<String, String>();
			parametros
					.put("BRASAO", super.obterRequest().getRealPath("/imagens/geral/brasao.jpg"));
			parametros.put("consulta", consulta);
			parametros.put("data", DataUtil.formatar(new java.util.Date(), "dd/MM/yyyy"));
			parametros.put("hora", DataUtil.formatar(new java.util.Date(), "hh:mm"));

			super.obterRequest().getSession().setAttribute("JASPER_REPORT",
					getRelatorio(PATH_RELATORIO_LIBERAR_PROCESSOS));

			super.obterRequest().getSession().setAttribute("PARAMETROS", parametros);

			System.out.println(parametros.toString());

			return "imprimir";

		} catch (Exception ex) {
			throw new BusinessException("Erro ao Gerar Relatório");
		}

	}


@SuppressWarnings("deprecation")
	protected JasperReport getRelatorio(String pathJasper) throws BusinessException {
		try {

			File reportFile = new File(super.obterRequest().getRealPath(pathJasper)); // [color=red]Lança o erro nessa linha[/color]
			return (JasperReport) JRLoader.loadObject(reportFile.getPath());

		} catch (Exception e) {
			System.out.println("erro ao processar o relatório!");
			e.printStackTrace();
			throw new BusinessException("");
		}

	}

5 Respostas

vi-gb

Oi!
Quando vc atualizou vc mudou o jar e recompilou os arquivos?

maxdavis

A Droga q eu não tenho o jrxml só o jasper, mas fiquei sabendo atraves de um amigo q dá pra fazer o inverte com ireport mais novo! Valeu pela dica. vou tentar aki.

TheKill

basta compilar o .jasper no ireport, que vc vai ter o .jrxml

maxdavis

vc ta dizendo em abrir o .jasper no ireport e salvar o .jrxml?

TheKill

compilar no iReport. tem um icone parecido com o do Netbeans

Criado 21 de junho de 2010
Ultima resposta 22 de jun. de 2010
Respostas 5
Participantes 3