【问题标题】:JasperReports Library and MongoDBJasperReports 库和 MongoDB
【发布时间】:2012-03-15 04:29:19
【问题描述】:

这是我的源代码:

import com.jaspersoft.mongodb.MongoDbConnection;
import com.jaspersoft.mongodb.MongoDbDataSource;
import java.io.File;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.JasperCompileManager;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.engine.xml.JRXmlLoader;

public class Generate {

    public static void main(String[] args) throws UnknownHostException {
        try {
            // - Connexion à la base
            String mongoURI = "mongodb://localhost/test";
            MongoDbConnection connection = null;

            Map<String, Object> parameters = new HashMap<String, Object>();
            try {
                connection = new MongoDbConnection(mongoURI,null,null);
                parameters.put(MongoDbDataSource.CONNECTION, connection);
                JasperDesign jasperDesign = JRXmlLoader.load("/home/test/gocoffee.jrxml");
                JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
                File jasperFile;
                jasperFile = new File("/home/test/MongoDbReport.jasper");
                JasperCompileManager.compileReportToFile("/home/test/gocoffee.jrxml", "/home/test/MongoDbReport.jasper");
                JasperFillManager.fillReportToFile("/home/test/MongoDbReport.jasper", parameters);               
                JasperExportManager.exportReportToPdfFile("/home/test/MongoDbReport.jrprint");
            } catch(Exception e) {
            }
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
}

Mongo 正在运行。 我在名为“test”的文件夹中有 gocoffee.jrxml,当我编译时,我得到 BUILD SUCCESSFUL 但没有 pdf 文件出现在我的“test”文件夹中。

有趣的事实:如果我做一个

System.out.print("123");

在这一行之后:

JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

它不起作用。

(我刚刚在此之前修复了this error。可能与此有关)

谢谢!

Ps:mdahlman 你太棒了

【问题讨论】:

  • 为什么忽略所有异常?你检查异常了吗?您是否尝试过调试应用程序?
  • 我没有忽略我没有的所有例外。我明天要试试。
  • 您说代码System.out.print("123"); 不起作用 - 这意味着引发了一些异常。

标签: mongodb jasper-reports


【解决方案1】:

在 iReport 中工作但在使用 JasperReports 的应用程序中失败的报告可能意味着您缺少查询执行器。创建 jasperreports.properties(或编辑现有的),确保它在类路径中,然后添加以下行:

net.sf.jasperreports.query.executer.factory.MongoDbQuery=com.jaspersoft.mongodb.MongoDbQueryExecuterFactory

注意1:您应该查看发布到jasperforge 的源代码中的工作单元测试(它使用了这个想法)。那真的应该有你需要的一切。

注意 2:我们最近发现必须这样做很麻烦,因此我们更新了连接器,使其具有执行相同角色的 jasperreports_extension.properties 的副本。但是它包含在连接器 .jar 文件中,因此您不必担心它。很快就会发布。

【讨论】:

  • 谢谢你真的很有帮助。我刚刚将它添加到我的类路径中,一切正常!
  • @mdahlman - 我们如何将相应的 jar 文件添加到类路径中?有没有maven依赖?
猜你喜欢
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 2011-07-04
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多