JasperReports e iReports

Toda a vez que chamo o meu .jasper acontece o seguinte erro:

erro: Class not found when loading object from file : C:\Documents and Settings\SSBBLL\My Documents\AutoSystem\src\modelo\conexao\historico_estoque.jasper

Eu segui um tutorial la do GUJ e até peguei alguns exemplos por ae, mas meu código não funciona de jeito nenhum. Alguém poderia me ajudar com isso?

Estou utilizando o JasperReports 1.2.7 c/ o iReport 1.2.7

O meu código é assim:

package modelo.conexao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperRunManager;
import net.sf.jasperreports.engine.data.JRBeanArrayDataSource;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;

public class GerarRelatorio {
    Connection conexao = null;
    
    public GerarRelatorio() {
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conexao = DriverManager.getConnection("jdbc:mysql://localhost/autosystem","root","root");
        } catch (Exception e) {
            e. printStackTrace();
        }
    }
        
    public void gerarRelatorioHistoricoEstoque() throws Exception, JRException {
       PreparedStatement stmt = null;
       ResultSet rs = null;
       //String caminhoRelatorioJasper = "F:\\AutoSystem\\src\\modelo\\conexao\\historico_estoque.jasper";
       String caminhoRelatorioJasper = "C:\\Documents and Settings\\SSBBLL\\My Documents\\AutoSystem\\src\\modelo\\conexao\\historico_estoque.jasper";
       
       try{
           stmt = conexao.prepareStatement( "select cast(h.cd_peca as char) cd_peca, " +
                                                   "p.ds_peca, " +
                                                   "if(h.cd_tipo_transacao = 1, 'Entrada', " +
                                                     "( if(h.cd_tipo_transacao = 2, 'Saida',NULL) ) " +
                                                     ") tipo_transacao, " +
                                                   "cast(h.qt_transacao as char) qt_transacao, " +
                                                   "cast(h.qt_estoque_antes_transacao as char) qt_estoque_antes_transacao, " +
                                                   "cast(if(h.cd_tipo_transacao = 1, h.qt_estoque_antes_transacao + h.qt_transacao, " +
                                                         "( if(h.cd_tipo_transacao = 2, h.qt_estoque_antes_transacao - h.qt_transacao,NULL) ) " +
                                                       ") as char )  qt_estoque_depois_transacao " +
                                              "from peca p, historico_estoque h " +
                                             "where h.cd_peca = p.cd_peca" );                      
           
           rs = stmt.executeQuery();
           
           JRResultSetDataSource ds = new JRResultSetDataSource(rs);
            
           Map parametros = new HashMap();
           
           try{
               JasperPrint impressao = JasperFillManager.fillReport( caminhoRelatorioJasper,parametros,ds);
               
               JasperViewer viewer = new JasperViewer(impressao, true);
               
           }
           
           catch (JRException e){
               System.out.println("erro: " + e.getMessage());
               e.printStackTrace();
           
           }
           
       }
       catch(Exception e) {
           e.printStackTrace();       
       }
       
        
    }

}

ola …
estou querendo fazer a mesma coisa que voce fez e me da o mesmo erro, voce conseguiu alguma coisa ja …

obrigado

Opa,

O arquivo .jasper está neste caminho mesmo? Geralmente ele salva o .jasper na pasta do ireports só, por default.

:okok:

ola Lorenzini,

o arquivo .jasper nao esta no lugar onde vc indica…

de uma verificada q esse erro so acontece qdo o Jasper n encontra o arquivo .jasper…

abraco e t++

eu fiz dessa maneira e localmente funciona, mas quando executo pelo java web start nao funciona, o que pode ser ??

Hummm coloque caminho relatativo. Porque quando você informa este valor ele considera na máquina do cliente, aí o arquivo não existe. Tome muito cuidado com isto.

:okok:

como colocar o caminho relativo …

eu ja tentei de varias maneiras e nenhuma funcionou …

String caminho = "c:/jmweb/tutorialjws/relatorio.jasper" ;

InputStrem in = this.getClass().getClassLoader().getResourceAsStream("./coren/relatorio.jasper");

String reportFile = "boleto_bbr.jasper";
URL urlFile = getClass().getResource(reportFile);

o que posso fazer ??

Também estou tendo esse mesmo problema.
net.sf.jasperreports.engine.JRException: Class not found when loading object from file

Se alguém tiver encontrado a solução por favor poste a solução

Vlws!!!

pra mim deu certo …

eu importei todas as bibiliotecas do ireport no meu projeto (copiei todos os .jar da pasta ireport/lib) e funcionou, agora deu outro erro :

Exception in thread “AWT-EventQueue-0” java.security.AccessControlException: access denied (java.io.FilePermission relatorio.jasper read)

o que pode ser ??
o que eu faco ??