Erro iReport

Pessoal,

Copiei um código aqui mesmo no guj de conexão com relatorio iReport para aprender como funfa isso ai…

Mas tá dando o seguinte erro:

Exception in thread "main" java.lang.NullPointerException
    at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:48)
    at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:75)

O código é o seguinte:

import javax.swing.JOptionPane;

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.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioBibliotecaPessoal {
    
   static Connection con = null;
    /* Real za con tornani exão com o banco de dados, re do o objeto Connection */
    private static Connection getConnection( ) throws
            ClassNotFoundException, SQLException {
        
               try {
            
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();
            String dsn = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};"+
                    "DBQ=E:/Base_Teste.mdb";
            con = DriverManager.getConnection(dsn,"","");
            }
        
        catch(Exception ex) {
            JOptionPane.showMessageDialog(null,"Driver ou Banco de Dados não Encontrados!","Erro",JOptionPane.ERROR_MESSAGE);
            ex.printStackTrace(); }
        
        
        return con;
    }
    
    /* Gera Relatorio e visualiza-o */
    public void geraRelatorio( ) throws JRException, Exception {
        
        Statement stm = con.createStatement();
        String query = "select * from Livro";
        ResultSet rs =  stm.executeQuery( query );
        
        /* implementação da interface JRDataSource para DataSource ResultSet */
        JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
        
        /* 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( "E:/Arquivos de programas/JasperSoft/iReport-1.3.0/teste_relatorio.jasper", parameters, jrRS );
        
        
        /* Exporta para o formato PDF */
        JasperExportManager.exportReportToPdfFile( "E:/Arquivos de programas/JasperSoft/iReport-1.3.0/teste_relatorio.jasper" );
        
   /* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
       a necessidade do .jrprint */
        // JasperRunManager.runReportToPdfFile("BibliotecaPessoal.jasper", parameters, jrRS);
        
        /* Visualiza o relatório em formato PDF */
        JasperViewer.viewReport( "BibliotecaPessoal.pdf", false );
    }
    
    public static void main(String[] args) throws JRException, Exception {
       new RelatorioBibliotecaPessoal().geraRelatorio();
        
    }
    
}

Por que ocorre esse erro e como posso resolvê-lo?

Obrigado

Verifique o caminho para o banco de dados, me parece que o banco não está sendo encontrado.

Testei a conexão com outra classe e tá funcionando certinho. Então o problema é outro. Tem ideia do que pode ser??

Valeu.

Vc não tem q chamar getConnection( ) antes de chamar geraRelatorio(). Se não con vai ficar null

Obrigado Furutani.

Caramba…como é complicado isso…

fiz algumas alterações e agora tá dando esse erro:

Exception in thread "main" net.sf.jasperreports.engine.JRException: Unknown column name : dia at net.sf.jasperreports.engine.JRResultSetDataSource.getColumnIndex(JRResultSetDataSource.java:356) at net.sf.jasperreports.engine.JRResultSetDataSource.getFieldValue(JRResultSetDataSource.java:116) at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:799) at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:763) at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1078) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:107) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:751) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:679) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:492) at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:448) at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:54) at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:69)

Alguém sabe o que pode ser??
Antes não achava a coluna “momento” agora não acha “dia”

ele não está encontrando a coluna de nome “dia”.

verifique se o nome está correto.

flws

Preste atenção na grafia, maiusculas e minusculas fazem a diferença.

Por favor, a que se refere este erro?

Exception in thread "main" net.sf.jasperreports.engine.JRException: Error loading object from file : E:\Arquivos de programas\JasperSoft\iReport-1.3.0\lib\teste.jrxml at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92) at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443) at RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:53) at RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:66) Caused by: java.io.StreamCorruptedException: invalid stream header at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:764) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87) ... 3 more

Obrigado,

Olá Marck! sei que faz tempo q abriu esse topico, mas quria saber se vc conseguiu resolver o problema com a mensagem:
Exception in thread “main” net.sf.jasperreports.engine.JRException: Unknown column name : soma
essa minha coluna soma existe, é o nome de uma coluna resultante de uma subquery na consulta. qndo tento gerar o relatorio dá esse erro…
se puder me ajudar, por favor responda…