Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用JasperReports库和MongoDB生成EPDF_Java_Mongodb_Jasper Reports_Mongo Java - Fatal编程技术网

Java 使用JasperReports库和MongoDB生成EPDF

Java 使用JasperReports库和MongoDB生成EPDF,java,mongodb,jasper-reports,mongo-java,Java,Mongodb,Jasper Reports,Mongo Java,这是我的GeneratePdf.java 导入 public class GeneratePdf { public static void main(String[] args) { try { JRDataSource ds = getDatasource(); // - Chargement et compilation du rapport line32 JasperDesign jasperDe

这是我的GeneratePdf.java 导入

  public class GeneratePdf {
        public static void main(String[] args) {
        try {
            JRDataSource ds = getDatasource();
            // - Chargement et compilation du rapport
line32      JasperDesign jasperDesign = JRXmlLoader.load("/home/gocoffee.jrxml");
            JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);

            // - Paramètres à envoyer au rapport
            Map parameters = new HashMap();
            parameters.put("Titre", "Titre");

            // - Execution du rapport
            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport,
parameters, ds);

            // - Création du rapport au format PDF
            JasperExportManager.exportReportToPdfFile(jasperPrint, "home/test2.pdf");
        } catch (JRException e) {
        }
    }
Mongo连接并获取数据():


使用JRBeanCollectionDataSource不是使用MongoDB连接器的正确方法。看看Jaspersoft MongoDB连接器附带的测试源:

MongoDbDatasource/src/test/java/com/jaspersoft/mongodb/ReportTest.java

二进制连接器和源都位于上

为了保持这个答案的独立性,这里有一个代码片段,展示了如何填写MongoDB报告。这是我上面提到的文件的修改摘录

String mongoURI = "mongodb://bdsandbox6:27017/test";
MongoDbConnection connection = null;
Map<String, Object> parameters = new HashMap<String, Object>();
try {
  connection = new MongoDbConnection(mongoURI, null, null);
  parameters.put(MongoDbDataSource.CONNECTION, connection);
  File jasperFile;
  jasperFile = new File("MongoDbReport.jasper");
  JasperCompileManager.compileReportToFile("MongoDbReport.jrxml", "MongoDbReport.jasper");
  JasperFillManager.fillReportToFile("MongoDbReport.jasper", parameters);
  JasperExportManager.exportReportToPdfFile("MongoDbReport.jrprint");
}
} catch (Exception e) {
  e.printStackTrace();
} finally {
  if (connection != null) {
    connection.close();
  }
}
String mongoURI=”mongodb://bdsandbox6:27017/test";
MongoDbConnection连接=null;
映射参数=新的HashMap();
试一试{
连接=新的MongoDbConnection(mongoURI,null,null);
parameters.put(MongoDbDataSource.CONNECTION,CONNECTION);
档案档案;
jasperFile=新文件(“MongoDbReport.jasper”);
jaspecompilemanager.compileReportToFile(“MongoDbReport.jrxml”、“MongoDbReport.jasper”);
JasperFillManager.fillReportToFile(“MongoDbReport.jasper”,参数);
JasperExportManager.exportReportToPdfFile(“MongoDbReport.jrprint”);
}
}捕获(例外e){
e、 printStackTrace();
}最后{
if(连接!=null){
connection.close();
}
}

您需要添加以下行:

JRProperties.setProperty("net.sf.jasperreports.query.executer.factory.MongoDbQuery", "com.jaspersoft.mongodb.query.MongoDbQueryExecuterFactory");

验证datasource jar文件中的路径,例如js-mongodb-datasource-0.5.0

我读了你的博客,它非常有趣。如果你能帮助我,我有一个新问题。谢谢新的错误!我添加了log4j.xml(log4j.properties),再次出现了相同的错误:
2012年2月24日14:20:53错误[org.apache.commons.digester.digester]结束事件在net.sf.jasperreports.engine.xml.JRXmlLoader.load的sun.reflect.NativeMethodAccessorImpl.invoke0处抛出异常java.lang.reflect.InvocationTargetException(JRXmlLoader.java:156)…在Generate.main(Generate.java:29)处原因:net.sf.jasperreports.engine.JRRuntimeException:没有为“MongoDbQuery”语言注册的查询执行器工厂……
Hi-mdahlman,您的上述站点似乎无法正常工作。您能查找一下吗?请尝试提供示例代码/Project@mdahlman-你能给我引路吗?
String mongoURI = "mongodb://bdsandbox6:27017/test";
MongoDbConnection connection = null;
Map<String, Object> parameters = new HashMap<String, Object>();
try {
  connection = new MongoDbConnection(mongoURI, null, null);
  parameters.put(MongoDbDataSource.CONNECTION, connection);
  File jasperFile;
  jasperFile = new File("MongoDbReport.jasper");
  JasperCompileManager.compileReportToFile("MongoDbReport.jrxml", "MongoDbReport.jasper");
  JasperFillManager.fillReportToFile("MongoDbReport.jasper", parameters);
  JasperExportManager.exportReportToPdfFile("MongoDbReport.jrprint");
}
} catch (Exception e) {
  e.printStackTrace();
} finally {
  if (connection != null) {
    connection.close();
  }
}
JRProperties.setProperty("net.sf.jasperreports.query.executer.factory.MongoDbQuery", "com.jaspersoft.mongodb.query.MongoDbQueryExecuterFactory");