Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda con Reportes en JAVA - NetBeans

michel1n0

Bovino maduro
Desde
18 Sep 2007
Mensajes
345
Hola Bakunos, por favor espero me ayuden en esto, lo que pasa es que estoy practicando con unos cursos que descargue sobre informes en JAVA (Netbeans e Ireport).

lo que hago es adjuntar el archivo report1.jasper al proyecto, dentro de la carpeta informes, adjunto ademas los archivos .JAR necesarios para hacer correr el informe, y tambien el conector con MySQL; eh hecho literalmente todo lo que me dice el curso(si es que no me he equivocado =P), pero aun así me genera errores que no sé que son. aqui les dejo el codigo que hice y el respectivo error que me genera, y gracias de antemano.

CODIGO JAVA:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* ventanaprincipal.java
*
* Created on 20-dic-2010, 19:35:12
*/
package paqueteprincipal;
import javax.swing.*;
import java.awt.event.*;
import java.sql.*;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
/**
*
* @author YOVANINA
*/
public class ventanaprincipal extends javax.swing.JFrame {
JButton btninforme;
Connection conexion;
Statement sentencia;
/** Creates new form ventanaprincipal */
public ventanaprincipal() {
initComponents();
CrearVentana();
PrepararBD();
}
void PrepararBD(){
//controlador MySQL
try{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Error al cargar el controlador");
}
//conectando a la base de datos
try{
conexion = DriverManager.getConnection("jdbc:mysql://localhost:3306/reporte","root","a123");
}
catch(Exception e){
JOptionPane.showMessageDialog(null,"Error al conectar a la base de datos");
}
//creando el objeto sentencia
try{
sentencia = conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Error al crear el objeto sentencia");
}
}
public void CrearVentana(){
this.setTitle("GENERANDO INFORMES DESDE JAVA");
this.setSize(500,100);
this.setLocation(100,100);
btninforme = new JButton("Mostrar Informe");
btninforme.setBounds(10,10,150,20);
btninforme.setFocusPainted(false);
btninforme.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent evt){
botonesActionPerformed(evt);
}});
this.getContentPane().add(btninforme);
}
public void botonesActionPerformed(ActionEvent evt){
if(evt.getSource().equals(btninforme)){
try{
JasperPrint informe = JasperFillManager.fillReport("informes\\report1.jasper",null,conexion);
JasperViewer ventanavisor = new JasperViewer(informe,false);
ventanavisor.setTitle("INFORME DE ALUMNOS");
ventanavisor.setVisible(true);
}
catch(Exception e){
JOptionPane.showMessageDialog(null, "Error al mostrar el informe"+e);
}
}
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new ventanaprincipal().setVisible(true);
}
});
}
// Variables declaration - do not modify
// End of variables declaration
}


ERROR QUE GENERA:

run:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/digester/Rule
at net.sf.jasperreports.components.ComponentsExtensionsRegistryFactory.<clinit>(ComponentsExtensionsRegistryFactory.java:87)
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:161)
at net.sf.jasperreports.engine.util.JRClassLoader.loadClassForName(JRClassLoader.java:119)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:57)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.instantiateRegistry(DefaultExtensionsRegistry.java:202)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:179)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.loadRegistries(DefaultExtensionsRegistry.java:139)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getRegistries(DefaultExtensionsRegistry.java:125)
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.getExtensions(DefaultExtensionsRegistry.java:102)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:80)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:177)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:78)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:60)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:421)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:251)
at paqueteprincipal.ventanaprincipal.botonesActionPerformed(ventanaprincipal.java:83)
at paqueteprincipal.ventanaprincipal$1.actionPerformed(ventanaprincipal.java:74)
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)
... 46 more
BUILD SUCCESSFUL (total time: 33 seconds)
 
parece que tambien ocupas la libreria de apache commons.. buscala en la pagina de apache y agregala a tu proyecto.

Saludos.
 
Volver
Arriba