Ayuda con Reportes en JAVA - NetBeans

michel1n0

Bovino maduro
#1
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)
 

50C1

Bovino adicto
#2
parece que tambien ocupas la libreria de apache commons.. buscala en la pagina de apache y agregala a tu proyecto.

Saludos.
 
Arriba