Erro ao chamar relatório[RESOLVIDO]

Bom, eu to com dificuldades em chamar o relatório no botão, já tentei várias vezes e nada. Já procurei em alguns tópicos mas não consegui resolver.

Estou usando o iReports 4.5 (Antes estava tentando com o 4.3) e o Netbeans 6.8

Eis o código:

[code]public void gerarRelatorio() {
Connection conn = null;

      try {
          Class.forName("com.mysql.jdbc.Driver").newInstance();
          //     String reportname = "com.br.pinhuxsistemadevendas.relatorios.report1.jasper";
          InputStream fis = this.getClass().getClassLoader().getResourceAsStream("/Pacientes.jasper");
          conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/autoodonto", "root", "");
          JasperPrint print = JasperFillManager.fillReport(fis, new HashMap(), conn);
          JasperViewer jv = new JasperViewer(print, false); // false Needed not to close parent frame
          jv.setVisible(true);
      } catch (Exception ex) {
          ex.printStackTrace();
      } finally {
          if (conn != null) {
              try {
                  conn.close();
              } catch (Exception ex) {
                  System.err.println(ex);
              }
          }
      }[/code]

E aqui o erro:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at net.sf.jasperreports.engine.util.JRLoader.<clinit>(JRLoader.java:61) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:376) at br.autodontov1.forms.FormPaciente.DisplayReport(FormPaciente.java:692) at br.autodontov1.forms.FormPaciente.btCriarPDFActionPerformed(FormPaciente.java:712) at br.autodontov1.forms.FormPaciente.access$000(FormPaciente.java:61) at br.autodontov1.forms.FormPaciente$1.actionPerformed(FormPaciente.java:181) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 31 more
[]'s

Não esta encontrando a classe commons-logging, coloca ela no seu classpath, coloquei no anexo.

Valeu cara.

Resolveu aquela parte, mas estava ajeitando e gerou outro erro:

Estou iniciando com os relatórios e ainda estou perdido.

Código:

[code]ublic RelatorioConsulta() throws SQLException, JRException {

    HashMap parametros = new HashMap();
    String cod = JOptionPane.showInputDialog(null, "Insira o código da consulta: ");
    conecta.getConection();
    
    String sql =  "select * from agenda where codigo = " + cod;

    PreparedStatement stmt = conecta.getConection().prepareStatement(sql);
    ResultSet rs = stmt.executeQuery();
    
    JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
    JasperPrint jasperPrint;

    try {

        jasperPrint = JasperFillManager.fillReport("relatorio/Consultas.jasper" , parametros, jrRS);
        JasperViewer.viewReport(jasperPrint, false);
    } catch (JRException ex) {
        JOptionPane.showMessageDialog(null, ex);
    }

public static void main (String args[]) throws SQLException, JRException{
new RelatorioConsulta();
}
}
[/code]

[]'s

Sua aplicação não esta localizando o arquivo relatorioConsultas.jasper, verifique se ele esta na pasta que estão seus relatórios.

Ta difícil, é ajeitando um erro e aparecendo outro, olha o que apareceu agora:

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/apache/commons/collections/ReferenceMap at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(DefaultExtensionsRegistry.java:97) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59) at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:80) at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:68) at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83) at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:87) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) at br.autodontov1.relatorio.RelatorioConsulta.<init>(RelatorioConsulta.java:47) at br.autodontov1.relatorio.RelatorioConsulta.main(RelatorioConsulta.java:57) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 21 more Java Result: 1

[]'s

Coloque este jar que estão em anexo no seu classpath

Mesma coisa…

og4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly. Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.<clinit>(ComponentsExtensionsRegistryFactory.java:99) 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:236) at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:213) at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:163) at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:133) at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:105) at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83) at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:121) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:77) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:87) at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540) at br.autodontov1.relatorio.RelatorioConsulta.<init>(RelatorioConsulta.java:51) at br.autodontov1.forms.FormPaciente.btRelatorioActionPerformed(FormPaciente.java:689) at br.autodontov1.forms.FormPaciente.access$000(FormPaciente.java:61) at br.autodontov1.forms.FormPaciente$1.actionPerformed(FormPaciente.java:181) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6267) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6032) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4630) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4460) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Rule at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) ... 49 more

[]'s

Mesma coisa não, a mensagem mudou coloca estes 2 agora para acabar com os arquivos apache-commons

Falei no sentido que ainda tava com erro…

Agora deu tudo certo, o relatório abriu como eu queria.

Mas apareceu apenas isso ainda:

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly.

Valeu pela ajuda e obrigado pela atenção

[]'s

De nada, se preoucupa com esta mensagem não, ela só esta aparecendo porque o log não foi, configurado, não irá alterar em nada sua aplicação.

AA, só mais uma coisa antes de alterar o tópico.

O caminho do meu diretório ficou assim:

jasperPrint = JasperFillManager.fillReport( "D:/Meus documentos/NetbeansProjects/AutOdontov1/src/br/autodontov1/relatorio/Consultas.jasper" , parametros, jrRS);

Se eu gerar o JAR e for abrir em outra máquina o relatório não abre né ?

Como eu colocaria ele dentro do próprio projeto para que pudesse rodar em outros lugares?

[]'s

Tenta assim:

jasperPrint = JasperFillManager.fillReport("relatorio/Consultas.jasper" , parametros, jrRS);

Tentei e não achou…

Assim, criei meu relatório a partir do netbeans mesmo, os relatórios estão no pacote: br.autodontov1.relatorio