problemas con eclipse y jasperreport

francia
04 de Octubre del 2005
tengo un problema al tratar de mostrar un reporte siempre me muestra lo siguiente:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:250)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:113)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:57)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:247)
at VisualizaReporte.<init>(VisualizaReporte.java:79)
at Inicio$39.actionPerformed(Inicio.java:644)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:943)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

el codigo es el siguiente:







import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.JasperViewer;

/**
* @author Administrador
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class VisualizaReporte {

/**
*
*/
public VisualizaReporte() {
/////////System.out.println("No encuentro el archivo");

URL repor=this.getClass().getResource("/DatosE1.jasper");
System.out.println(repor);
if (repor == null) {
System.out.println("No encuentro el archivo del reporte maestro.");
System.exit(2);
}

JasperReport masterReport = null;

try {
masterReport = (JasperReport) JRLoader.loadObject(repor);

}catch (JRException ex) {
System.out.println("Error cargando el reporte maestro: " + ex.getMessage());
System.exit(3);

}
Connection conn=null;
try {

String url= "jdbc:mysql://localhost:3306/gestion";
String use= "alma1325";
Properties props = new Properties();

props.setProperty("user", use);

Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url ,props );
}catch (Exception e) {
System.out.println("Error no puede cargar la conexion " + e);
System.exit(3);

}

// Parámetros del reporte maestro

Map masterParams = new HashMap();
masterParams.put("PUERTO", new String("0-3-0"));
masterParams.put("NOMBRE", new String("CEN3"));

JasperPrint masterPrint = null;
try {

masterPrint = JasperFillManager.fillReport(masterReport,masterParams,conn);
JasperViewer.viewReport(masterPrint, false);

} catch (JRException e) {
System.out.println("problema al imprimir"+e);

}

// super();
// TODO Auto-generated constructor stub
}


public static void main(String[] args) {


}
}







consultoriajava.com
04 de Octubre del 2005
Parece que te falta alguno de los jar's necesarios, precisamente el que contiene la clase que no encuentra la JVM:

org.apache.commons.logging.LogFactory