Invocando reporte iReport desde aplicacion Java ( NetBeans ) - ERROR.

4,242 views
Skip to first unread message

eea seek 4th in bcn

unread,
Mar 13, 2011, 5:51:53 AM3/13/11
to jav...@googlegroups.com
Amigos buenos dias,
 
Estoy haciendo ejemplos de un tutorial de NetBaeans e iReport y me esta dando error al invocar al reporte desde mi pequeña aplicacion java hecha con NetBeans.
( El error se lo  pego  mas abajo ).
 
El codigo es esl siguiente:
private void btnInformeAgrupadoActionPerformed(java.awt.event.ActionEvent evt) {                                                  
        // TODO add your handling code here:

        try {
            String rutaInforme  = "informes_ireport\\Rep58_Grupos4.jasper";
            JasperPrint informe = JasperFillManager.fillReport(rutaInforme,null,conexion);
            JasperViewer ventanaVisor = new JasperViewer(informe, false) ;
            ventanaVisor.setTitle("LISTADO DE SERVICIOS");
            ventanaVisor.setVisible(true);
        } catch (Exception ex){
            JOptionPane.showMessageDialog(null, "ERROR AL MOSTRAR INFORME.");
        }   // try {
    }            
                                     
Debo mencionar que
-  uso el Nebeans 4.0.1
-  He agregado la bibliotecca del proyect: Blibliotecas / Agregar archivos JAR Y AGREGUE commons-collections-2.1.jar, commons-loggin-1.0.2.jar y jasperreports-2.0.1.jar
-  La conexion a la base de datos esta bien.
-  El reporte si funciona bien cuando le hago un preview en el Ide de iReport.
-  El error no es capturado por el try ..catch del metodo btnInformeAgrupadoActionPerformed().
-  Me INDICAN SI QUIEREN MAS INFORMACION.
 
Muchas gracias
 
AQUI EL MENSAJE, si pueden de paso me enseñan como leer el listado de errores que arroja el java.
 
run:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule
        at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.<clinit>(ComponentsExtensionsRegistryFactory.java:91)
        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:162)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:132)
        at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:104)
        at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:81)
        at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:182)
        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:52)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:417)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
        at paqueteprincipal.VentanaPrincipal.btnInformeAgrupadoActionPerformed(VentanaPrincipal.java:130)
        at paqueteprincipal.VentanaPrincipal.access$000(VentanaPrincipal.java:27)
        at paqueteprincipal.VentanaPrincipal$1.actionPerformed(VentanaPrincipal.java:93)
        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:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        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:4574)
        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:2475)
        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: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)
        ... 48 more
GENERACIÓN CORRECTA (total time: 16 seconds)
 
 


Luís Soto

unread,
Mar 17, 2011, 4:46:20 PM3/17/11
to jav...@googlegroups.com
Saludos, el mensaje de error podrias leerlo desde abajo, 
Entonces, Viendo esa parte amarilla dice que no consigue una clase, Ahora bien Cual clase? org.apache.commons.digester.Rule
Deberias revisar si tienes el commons-digester.jar segun lo que encontre por ahí en -> http://www.liferay.com/community/forums/-/message_boards/message/1123990

Espero te sirva un saludo



2011/3/13 eea seek 4th in bcn <eest...@hotmail.com>
--
www.JavaSOS.com
Grupo de colaboración Java/J2ee para desarrolladores de habla hispana.



--
Atentamente,

Luis Soto
(0426) 912-5247

Marcelo Mora Miranda

unread,
Mar 17, 2011, 4:50:24 PM3/17/11
to jav...@googlegroups.com
lo q pasa colega, esq cuando le das la rutaInforme, no debes llenarlo el reporte de una vez, antes debes compilarlo
String rutaInforme  = "informes_ireport\\Rep58_Grupos4.jasper";
JasperReport jr = JasperCompileManager.compileReport(rutaInforme); // te falta esta linea
JasperPrint informe = JasperFillManager.fillReport(rutaInforme,null,conexion);

 
antes pa q te funcione esto debes agregarte la libreria jdt-compiler-3.1.1.jar, no se cual version sera la ultima pero yo uso esa
la puedes descargar de findjar.com
 
 
portate bien, no bebas mucho
 

From: eest...@hotmail.com
To: jav...@googlegroups.com
Subject: [JavaSOS] Invocando reporte iReport desde aplicacion Java ( NetBeans ) - ERROR.
Date: Sun, 13 Mar 2011 09:51:53 +0000

William Diaz Pabón

unread,
Mar 17, 2011, 5:34:05 PM3/17/11
to jav...@googlegroups.com, Marcelo Mora Miranda
Si te fijas en esta linea:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule

Esto quiere decir que el trato de usar una clase que no puede encontrar por eso arroja esta exception  java.lang.NoClassDefFoundError

Debes buscar el jar de commons-digester y adicionarlo a las librerias de tu proyecto.

espero sea de utilidad.


--
Cordialmente.


William Diaz Pabón
Cel: 3157397356
Bogotá - Colombia

--
Solo para Mujeres: http://www.lineadebelleza.com/

Christian Paucar

unread,
Mar 17, 2011, 5:23:27 PM3/17/11
to jav...@googlegroups.com
Estas definiendo mal la ruta del reporte:

Ejemplo
Forma Correcta
String jRptPlanilla="C:\\PGM_VISA\\reports\\jRptPlanilla.jasper";

2011/3/17 Marcelo Mora Miranda <moramar...@hotmail.com>



--
Christian PAUCAR
Reply all
Reply to author
Forward
0 new messages