IReport Exception

12 respostas
F

qual seria o meu problema ??

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: CartaoPonto.jasper at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:515)

o .jasper esta no mesmo diretorio da minha classe mas nao consigo encontrala…

ou em um outro exemplo que eu tentei gera o seguinte erro

java.lang.ClassCastException: net.sf.jasperreports.engine.JasperPrint cannot be cast to net.sf.jasperreports.engine.JasperReport at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)

alguem poderia me explicar esses erros??

estou tentando fazer o exemplo da apostila tutorial aqui do guj

Obrigado.

12 Respostas

M

furacao123:
qual seria o meu problema ??

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: CartaoPonto.jasper at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:515)

o .jasper esta no mesmo diretorio da minha classe mas nao consigo encontrala…

Olá furacao123.
Cara, até onde eu sei, o Jasper precisa de um caminha absoluto.
Tipo, se você colocar apenas CartaoPonto.jasper, ele não vai procurar dentro do pacote de onde está a a classe java, mas sim dentro do C:\ (ou dentros do \ se for no Linux).

Porque você quer dar um cast entre JasperPrint e JasperReport? Acho que isso não é possível não.

[]'s

JL

D

Oi!

Qual a versão do Ireport você está utilizando?
Vá em Opções/Configurações/Guia Compiler e veja se está no “JasperReports default”, se estiver em outro, vc precisa colocar a lib que ele solicitar…

B

estou com o mesmo erro…

public void Visualizar(){
     try {  
        
        JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);                        
        JasperPrint jasperPrint = JasperFillManager.fillReport(  
                    "scoms/relatorios/rellancdata.jasper", new HashMap(), jrRS);  
        JasperViewer.viewReport(jasperPrint, false);
         } catch (Exception erro){  
           System.out.println(erro); 
       }

}

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: scoms\relatorios\rellancdata.jasper
CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)

F

estou usando a versao iReport 3.0.0

o q eu quero na verdade é gerar um relatorio passando um select na minha classe…popular o modelo do relatorio conforme meu select

eu tenho um exemplo que apenas seleciona tudo da tabela passa como parametro apenas o objeto Connection…eu precisava passar um ResultSet

mas nao estou conseguindo sempre gera esse erro

B
JasperReport relatorio = JasperCompileManager.compileReport("rellancdata.jrxml");

Agora se eu tento compilar o jrxml surge esse erro…

Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester

F

Ae agora deu certo segue o codigo

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class JasperReportExemple {

	private static final String url = "jdbc:mysql://localhost:3306/teste";
	private static final String driver = "com.mysql.jdbc.Driver";
	private static final String login = "";
	private static final String pwd = "";

	public JasperReportExemple() {
	}

	public void gerar( String layout ) throws JRException , SQLException, ClassNotFoundException {
		//gerando o jasper design
	/*	JasperDesign desenho = JRXmlLoader.load( layout ); */

		//compila o relatório
/*		JasperReport relatorio = JasperCompileManager.compileReport( desenho ); */

		//estabelece conexão
		Class.forName( driver );
		Connection con = DriverManager.getConnection( url , login , pwd );
		Statement stm = con.createStatement();
		String query = " select  sql ";
		ResultSet rs = stm.executeQuery( query );

		//implementação da interface JRDataSource para DataSource ResultSet
		JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );

		//executa o relatório
		Map parametros = new HashMap();
		
		JasperPrint impressao = JasperFillManager.fillReport( "C:\\caminho completo");

		//exibe o resultado
		JasperViewer viewer = new JasperViewer( impressao , true );
		viewer.show();
	}

	public static void main(String[] args) {
		try {
			new JasperReportExemple().gerar( "C:\\caminho completo" );
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

O problema era realmente o caminho do arquivo

vlw

M

Dá uma olhadinha se a commons-digester.jar está no seu classpath.

[]'s

JL

B

andei procurando e é esse o problema mesmo.

porem não esta dando certo ainda…

http://commons.apache.org/downloads/index.html

fiz os dls tanto do digester como o logging… fiz o dl do bin e do source.

fiz a inserção no classpath do projeto os 2 zips(bin e src)

mas acontece o mesmo erro…

Exception occurred during event dispatching:
java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;

M

Não meu jovem…
Agora é outro jar…
Olha o Commons Logging se tá no classpath

P.S.: Se acontecer NoClassDefFoundError, dá uma olhadinha na classe que tá informando, se tá no seu classpath.

B

Aeeee…

Agora sim…

descompactei os zips, e selecionei o .jar. Eu estava apenas selecionando o .zip e a pasta e assim não funcionava.

Faltou pra mim o Loggings e Collections…

Após adicionar ao classpath deu certo…

obrigado…

G

Se a aplicação for web… não posso por caminho absoluto o que eu faço?

F

Usa o getResourceAsStream() para pegar o arquivo jasper

Criado 20 de fevereiro de 2009
Ultima resposta 21 de fev. de 2010
Respostas 12
Participantes 6