从jasper文件中检索数据

时间:2013-05-10 15:41:22

标签: java jasper-reports

嗨,我对jasper报道很新。只需要一个我需要从.jasper文件中检索信息的要求。我正在使用以下代码。

但问题是compileReport没有占用我在本地机器上的文件而且我得到一个错误,如

  

线程“main”中的异常java.lang.NoClassDefFoundError:org / apache / commons / digester / Digester       at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:150)       在jasper.test(jasper.java:28)       在jasper.main(jasper.java:40)

我不确定是什么问题。是不是我的.jasper文件?缺少哪一堂课? 我绝对无能为力。

我的代码是:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import dori.jasper.engine.JRException;
import net.sf.jasperreports.engine.JRDataSource;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import net.sf.jasperreports.view.JasperViewer;


public class jasper  {

    public static void test() throws FileNotFoundException, net.sf.jasperreports.engine.JRException{

    JasperReport report = JasperCompileManager.compileReport("C:\\Users\\Mandakini\\Downloads\\testReport.jasper");

    JasperPrint print = JasperFillManager.fillReport(report, new HashMap<String, String>());
    // export it!
    //File pdf = File.createTempFile("output.", ".pdf");

    OutputStream output= new FileOutputStream(new File("F:/catalog.pdf"));
    JasperExportManager.exportReportToPdfStream(print,output);

    }

    public static void main(String args[]) throws FileNotFoundException, net.sf.jasperreports.engine.JRException{
        test();
    }
}

由于

1 个答案:

答案 0 :(得分:0)

java.lang.NoClassDefFoundErrorClassNotFoundException几乎总是告诉您它引用的类在类路径中缺失。在这种情况下,它是org.apache.commons.digester.Digester。您可以下载包含此类here的jar。

要生成报告,请执行以下操作:

JasperReport jasperReport = (JasperReport) JRLoader.loadObjectFromFile(yourJasperFilePath);

Map<String, Object> parameters = new HashMap<>();
// set your parameters

Class.forName("com.mysql.jdbc.Driver");
Connection con = ...; // possibly get a connection

byte[] report = JasperRunManager.runReportToPdf(jasperReport, parameters, con); // pass the report, the report parameters, and a connection 
// this will fill the byte[] with the produced report

FileOutputStream out = new FileOutputStream(somePath);
out.write(report);
out.close();

至于它产生什么样的报告,我不确定你是如何设置它的。该信息可能位于.jasper.jrxml文件中。