problema al exportar un reporte de iReport

mary
12 de Junio del 2008
Tengo el siguiente codigo:
public class SubreportsSample {

public static void main(String[] args){
// Cargamos el driver JDBC
try {

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException e) {
System.out.println("MySQL JDBC Driver not found.");
System.exit(1);
}

// Obtenemos las URLs del reporte maestro y del subreporte
SubreportsSample t1 = new SubreportsSample();

URL urlMaestro = t1.getClass().getResource(
"./reports/TUTORIAL_SUBREPORTS_MASTER.jasper");

URL urlSubreporte = t1.getClass().getResource(
"./reports/TUTORIAL_SUBREPORTS_SUBREPORT.jasper");

if (urlMaestro == null) {
System.out.println("No encuentro el archivo del reporte maestro.");
System.exit(2);
}

if (urlSubreporte == null) {
System.out.println("No encuentro el archivo del subreporte.");
System.exit(2);
}


JasperReport masterReport = null;
try {
masterReport = (JasperReport) JRLoader.loadObject(urlMaestro);

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

// Cargamos el subreporte
JasperReport subReport = null;
try {
subReport = (JasperReport) JRLoader.loadObject(urlSubreporte);
} catch (JRException e) {
System.out.println("Error cargando el subreporte: " + e.getMessage());
System.exit(3);
}
// Cargamos el reporte maestro
//********************************************/
// Obtenemos una conexión con la base de datos
Connection con = null;
try {

con = DriverManager.getConnection("jdbc:odbc:a");
//con = DriverManager.getConnection("jdbc:mysql://localhost/subreports");
} catch (SQLException e) {
System.out.println("Error de conexión: " + e.getMessage());
System.exit(4);
}

// Parámetros del reporte maestro
Map masterParams = new HashMap();
masterParams.put("SUBREPORT", subReport);
masterParams.put("PERSONA_ID", new Integer(3));

// Parámetros del subreporte:
// Ninguno. El parámetro PERSONA_ID, se lo pasa
// el report maestro

// Llenamos el reporte maestro (y por ende el subreporte)
// y obtenemos un objeto JasperPrint que puede ser
// visualizado, impreso o exportado
JasperPrint masterPrint = null;
System.out.println("AQUI VA 1 ");
try {
System.out.println("AQUI VA 2");
masterPrint = JasperFillManager.fillReport(masterReport, masterParams,
con);

pero al ejecutarse esta linea :
masterPrint = JasperFillManager.fillReport(masterReport, masterParams,
con);

sale el error:

AQUI VA 2
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.fill.JRBaseFiller.<clinit>(JRBaseFiller.java:128)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:111)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:291)
at Reportes.SUBREPORTS.SubreportsSample.main(SubreportsSample.java:122)


POR FAVOR!!! ES URGENTE, QUIEN PUEDE ASESORARME?? GRACIAS

Daniel Navas
12 de Junio del 2008
Hola!! oye el codigo esta bien, te da esas excepciones por no tener unas librerias en tu proyecto estas librerias son:

jasperreports-1.3.3.jar
commons-beanutils.jas
commons-colletions.jar
commons-digester.jar
commons-logging.jar
poi-2.5.1-final-20040804.jar
itext-1.1.jar
con estas librerias tu reporte funcionara!!
Daniel Navas
email: [email protected]


mary
12 de Junio del 2008
Ya tengo la solucion, sucede que faltaban agregar las clases org/apache/commons/logging/LogFactory
en mi proyecto.