[RESOLVIDO] Erro ao gerar PDF JasperReport

5 respostas
M

Boa noite pessoal.

Estou com um problema chato que não consequi resolver sozinho, então venho pedir ajuda de vcs.

O problema é que estou tentando criar um relatório com o iReport+JasperReport e não estou conseguindo.

A primeira tentativa ocorreu o erro "Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory" Então pesquisei e adicione o commons-logging.jar nas minhas bibliotecas e o erro foi resolvido, porém apareceu outro erro!

"Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections" Então baixei o commons-collections e o erro foi resolvido, porém...., apareceu outro erro =P

"Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester" Baixei o dito cujo, adicionei nas bibliotecas do projeto e o problema saiu, porém...

Agora o erro que não consigo resolver:

"Exception in thread "main" java.lang.NoClassDefFoundError: com/lowagie/text/DocumentException"

Ja li em vários lugares para baixar o iText que resolveria, mas baixei o iText-5.0.6, coloquei nas bibliotecas do projeto e nada desse erro sair. Tentei versões anteriores do iText também e nada.

Alguem tem alguma idéia?

Estou usando:
Windows7
NetBeans 6.9.1
iReport-4.0.2

package utilitarios;

/**
 *
 * @author Mawcor
 */
/* pacotes necessários */
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;
import java.sql.*;
import java.util.*;

public class relatorio {
    conexao con_agendamento;


/* Gera Relatorio e visualiza-o */
 public void geraRelatorio( ) throws JRException, Exception {
   con_agendamento = new conexao();
   con_agendamento.conecta();

   con_agendamento.executaSQL("select * from agendamentos");
   

/* implementação da interface JRDataSource para DataSource ResultSet */
   JRResultSetDataSource jrRS = new JRResultSetDataSource( con_agendamento.resultset );

   /* HashMap de parametros utilizados no relatório. Sempre instanciados */
   Map parameters = new HashMap();
   // parameters.put("COLUNA", valor);

   /* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
   JasperFillManager.fillReportToFile( "src/cmc.jasper", parameters, jrRS );


    /* Exporta para o formato PDF */
    JasperExportManager.exportReportToPdfFile( "src/cmc.jrprint" );

   /* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
       a necessidade do .jrprint */
    //JasperRunManager.runReportToPdfFile("src/cmc.jasper", parameters, jrRS);

   /* Visualiza o relatório em formato PDF */
   JasperViewer.viewReport( "cmc.pdf", false );
 }

   public static void main(String[] args) throws JRException, Exception
   {
     new relatorio().geraRelatorio();
   }

}

Da erro na linha 37 "JasperExportManager.exportReportToPdfFile( "src/cmc.jrprint" );"

Valeu!

5 Respostas

UMC

da vez que tive esse erro era imcompatibilidade de versoes do i-text

evertonsilvagomesjav

A versão do seu Jasper é igual á do Ireport?

leandrokjava

Recompila teu jasper.

R

Eu acho que o esse erro é porque você só está passando o local onde esta o arquivo.jrprint faltou o parameters e o jrRS
Eu tenho esse codigo que compila corretamente em minha máquina, acho que ele explica.

HashMap map = new HashMap();			
			
//ApplicationManager.getRealPath()
String arquivoJasper = "/home/openk/workspace-javaiReports/Teste/WebContent/PrimeiroRelatorio.jasper";
JasperPrint relatorio = JasperFillManager.fillReport(arquivoJasper, map, conn);

String jasperPrint = JasperFillManager.fillReportToFile(arquivoJasper, map, conn);
JasperExportManager.exportReportToPdfFile(jasperPrint);
M

Consegui fazer funcionar pessoal.

Eu vi que no iReport o pdf era gerado sem problemas, entao tive a idéia de ir na pasta de instalação do iReport e copiar o iText que ele usava (iText-2.1.7.jar). Muito antigo em relação a versão atual no site do iText, porém agora está funcionando a geração do PDF certinho.

Obrigado pelas respostas!

Criado 28 de abril de 2011
Ultima resposta 30 de abr. de 2011
Respostas 5
Participantes 5