Ireports 5.0.1 erro ao executar

7 respostas
wdwebsite

Olá pessoal boa tarde, cansado de tantas tentativas sem sucesso com versões antigas do ireports, resolvi instalar tudo do mais novo e atualizado e vejam o que ocorreu.

Dados do meu sistema:
Netbeans 7.3 + plugin ireport 5.01
Irepot 5.0.1 (Programa separado do netbeans, eu instalei ele que acho melhor de trabalhar com ele do que com o plugin do netbeans)
biblioteca ireport 5.0.1

Resumindo eu coloquei tudo do mais novo e atualizado para não ocorrer erros de qualquer tipo, pensei que poderia ser algum erro com a conexão do banco de dados, então eu criei outro projeto apenas com um titulo estático e tentei executar, no preview tudo funciona perfeitamente mas quando chamo a classe ocorre o seguinte:

Dados da classe relatorios:

public void relatorios() {
        try {
            Connection con = new ConexaoMySQL().getConnection();
            HashMap parametros = new HashMap();
            parametros.put("DATA_INICIO", "2013/03/10");
            parametros.put("DATA_FIM", "2013/10/10");
            JasperPrint jp = JasperFillManager.fillReport("C:/javawd/relatorios/relTeste.jasper", parametros, con);
            JasperViewer jrv = new JasperViewer(jp);
            jrv.setVisible(true);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

Agora a baixo e o erro apresentado quando aperto o botão da classe

run:
[TopLink Info]: 2013.03.20 02:46:22.719--ServerSession(3512594)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2013.03.20 02:46:24.014--ServerSession(3512594)--file:/D:/java/programas/clientes/prezotto_vivian/sistema/sistema_prezzotto/build/classes/-prezzottoPU login successful
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
	at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:67)
	at net.sf.jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99)
	at net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94)
	at net.sf.jasperreports.engine.DefaultJasperReportsContext.<init>(DefaultJasperReportsContext.java:71)
	at net.sf.jasperreports.engine.DefaultJasperReportsContext.<clinit>(DefaultJasperReportsContext.java:59)
	at net.sf.jasperreports.engine.JasperFillManager.getDefaultInstance(JasperFillManager.java:85)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
	at financeiro.finLancamentos.relatorios(finLancamentos.java:905)
	at financeiro.finLancamentos.jButton3ActionPerformed(finLancamentos.java:762)
	at financeiro.finLancamentos.access$1100(finLancamentos.java:39)
	at financeiro.finLancamentos$FormListener.actionPerformed(finLancamentos.java:646)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	... 47 more

Gostaria de saber se alguém pode me ajudar.

7 Respostas

drsmachado

Essa mensagem te diz o que?

Para mim, indica que está faltando uma classe e que essa classe se chama LogFactory e fica no package org.apache.commons.logging
Isso significa, além do que já disse, que você não colocou todos os jars dependentes.
Considere estudar o maven ou outro gerenciador de builds e dependências (como o Ivy).
Até lá, baixe o jar commons-logging (procurando no google você acha rapidamente) e coloque-o o build path da aplicação.

wdwebsite

Importei a biblioteca que recomendou, mas agora apresenta outro erro que não consegui identificar.

run:
[TopLink Info]: 2013.03.21 01:39:35.294--ServerSession(7945929)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
[TopLink Info]: 2013.03.21 01:39:36.173--ServerSession(7945929)--file:/D:/java/programas/clientes/prezotto_vivian/sistema/sistema_prezzotto/build/classes/-prezzottoPU login successful
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/codehaus/groovy/control/CompilationFailedException
	at java.lang.Class.getDeclaredConstructors0(Native Method)
	at java.lang.Class.privateGetDeclaredConstructors(Class.java:2413)
	at java.lang.Class.getConstructor0(Class.java:2723)
	at java.lang.Class.getConstructor(Class.java:1676)
	at net.sf.jasperreports.engine.JasperCompileManager.getCompiler(JasperCompileManager.java:690)
	at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:263)
	at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:457)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:379)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
	at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
	at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:55)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
	at financeiro.finLancamentos.relatorios(finLancamentos.java:905)
	at financeiro.finLancamentos.jButton3ActionPerformed(finLancamentos.java:762)
	at financeiro.finLancamentos.access$1100(finLancamentos.java:39)
	at financeiro.finLancamentos$FormListener.actionPerformed(finLancamentos.java:646)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.control.CompilationFailedException
	at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
	... 56 more
drsmachado

O iReport é bem burrinho, ele vem configurado, por padrão, para gerar relatórios groovy.
Ao selecionar o relatório em si, na aba properties (propriedades) existe um atributo que indica a linguagem. Se você mudar para java, não precisa do groovy.
Caso contrário, faça a inclusão do jar groovy-all-www.jar no classpath da aplicação.

wdwebsite

Realmente, consegui uma pequena mudança na importação da biblioteca sugerida, mas agora ele esta dando um erro de data, será que o formato que eu estou enviando a data esta errado, já tentei dd/mm/yyyy e não funcionou, tbm tentei yyyy/mm/dd e tbm não funcionou, vejam o erro que esta gerando:

java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Date
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setDate(JRJdbcQueryExecuter.java:649)
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:577)
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.setStatementParameter(JRJdbcQueryExecuter.java:399)
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter$1.visit(JRJdbcQueryExecuter.java:332)
	at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter$QueryParameter.accept(JRAbstractQueryExecuter.java:157)
	at net.sf.jasperreports.engine.query.JRAbstractQueryExecuter.visitQueryParameters(JRAbstractQueryExecuter.java:646)
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createStatement(JRJdbcQueryExecuter.java:317)
	at net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:196)
	at net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1086)
	at net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:667)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1258)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:877)
	at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:822)
	at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:61)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
	at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:276)
	at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:745)
	at financeiro.finLancamentos.relatorios(finLancamentos.java:905)
	at financeiro.finLancamentos.jButton3ActionPerformed(finLancamentos.java:762)
	at financeiro.finLancamentos.access$1100(finLancamentos.java:39)
	at financeiro.finLancamentos$FormListener.actionPerformed(finLancamentos.java:646)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
	at java.awt.Component.processMouseEvent(Component.java:6505)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
	at java.awt.Component.processEvent(Component.java:6270)
	at java.awt.Container.processEvent(Container.java:2229)
	at java.awt.Component.dispatchEventImpl(Component.java:4861)
	at java.awt.Container.dispatchEventImpl(Container.java:2287)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
	at java.awt.Container.dispatchEventImpl(Container.java:2273)
	at java.awt.Window.dispatchEventImpl(Window.java:2719)
	at java.awt.Component.dispatchEvent(Component.java:4687)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
	at java.awt.EventQueue.access$200(EventQueue.java:103)
	at java.awt.EventQueue$3.run(EventQueue.java:688)
	at java.awt.EventQueue$3.run(EventQueue.java:686)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.awt.EventQueue$4.run(EventQueue.java:702)
	at java.awt.EventQueue$4.run(EventQueue.java:700)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
drsmachado

O que acontece é que você envia um field como Date e o elemento textField onde o mesmo será apresentado espera uma String.
Clique sobre este elemento e altere o tipo para java.util.Date.
Talvez seja preciso fazer isto com o próprio field, selecionando-o no menu à esquerda e realizando a mesma alteração.
Esta alteração também te permitirá definir um pattern expression, responsável por formatar a data como “dd/MM/yyyy”, por exemplo.

wdwebsite

Bom acho que entendi em partes, eu entendi que o formato que esta sendo enviado e string, e no relatório e date, mas eu não entendi como eu poderia fazer esta conversão, tipo como eu poderia enviar em formato date?

drsmachado

Ah, sim, eu entendi o inverso do que ocorre.
Basta que você altere o tipo de dado esperado, de Date para String, no elemento do relatório.
Ou, altere o tipo da variável que está passando para este field, de String para java.util.Date

Criado 20 de março de 2013
Ultima resposta 21 de mar. de 2013
Respostas 7
Participantes 2