Erro ao tentar executar o relatorio .jasper

2 respostas
higornucci

Olá, amigos!

Criei meu primeiro relatório usando o iReport (funcionou muito bem) e criei um código JAVA para tentar executá-lo. Porém ele não executa corretamente e eu ja olhei várias apostilas. Pelo que parece estou fazendo de maneira correta.

Gostaria de saber se alguem de vocês pode me ajudar a descobrir qual erro que estou cometendo.

Erro:
log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/core/io/Resource
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Class.java:247)
        at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForRealName(JRClassLoader.java:157)
        at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:115)
        at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:53)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:198)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:175)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:135)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:121)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:98)
        at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:76)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:174)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:74)
        at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:56)
        at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:143)
        at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:53)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
        at br.com.guaicurus.controle.AbreRelPagPer.main(AbreRelPagPer.java:37)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.io.Resource
        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
        ... 19 more
Java Result: 1
Classe JAVA
public class AbreRelPagPer {
    
    public static void main (String[] args) {
        Data data = new Data();
        Date dataInicial;
        Date dataFinal;
        String dataIni = JOptionPane.showInputDialog("Digite a data inicial. Modelo : dd/MM/yyyy");
        dataInicial = data.getData(dataIni);
        String dataFim = JOptionPane.showInputDialog("Digite a data final. Modelo : dd/MM/yyyy");
        dataFinal = data.getData(dataFim);

        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String db = "jdbc:mysql://localhost:3306/guaicurus";
            conn = DriverManager.getConnection(db, "root", "root");
            HashMap<String, Date> parameterMap = new HashMap<String, Date>();
            parameterMap.put("PAR_DATA_INI", dataInicial);
            parameterMap.put("PAR_DATA_FIM", dataFinal);
            String arquivo = System.getProperty("user.dir") +
                    "/src/br/com/guaicurus/formularios/FormularioPagamentos.jasper";
            JasperPrint jp = JasperFillManager.fillReport(arquivo, parameterMap, conn);

            JasperViewer.viewReport(jp, false);

        } catch (SQLException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(AbreRelPagPer.class.getName()).log(Level.SEVERE, null, ex);
        } catch (JRException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if(!conn.isClosed())
                    conn.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }

    }
}

2 Respostas

deniswsrosa

NoClassDefFoundError significa que alguma dependencia nao foi adicionada, neste caso provavelmente o jar do spring, voce já o adicionou no seu projeto?

higornucci

Falta um jar mesmo. :roll:

Obrigado, amigo.

Desculpe o encomodo por uma coisa tão simples.

Criado 8 de março de 2010
Ultima resposta 8 de mar. de 2010
Respostas 2
Participantes 2