[MONGODB] JasperReports에 도서관과 MongoDB를 가진 GeneratePDF
MONGODBJasperReports에 도서관과 MongoDB를 가진 GeneratePDF
여기 내 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) {
}
}
몽고 연결 및 데이터 가져 오기 () :
private static JRDataSource getDatasource() {
// Retrieve session
try{
Mongo m = new Mongo("localhost", 27017);
DB db = m.getDB("test");
DBCollection t = db.getCollection("test");
List<DBObject> list = t.getIndexInfo();
JRDataSource ds = new JRBeanCollectionDataSource(list);
return ds;
} catch (UnknownHostException e) {
System.out.println("Error mongo connection");
} catch (Exception e) {
System.out.println("Other Exception");
}
return null;
}
}
나는이 오류가 발생하지만 난 그것을 이해 해달라고 :
run:
17-Feb-2012 17:07:26 org.apache.commons.digester.Digester endElement
SEVERE: End event threw exception
java.lang.reflect.InvocationTargetException
....
....
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
at GeneratePdf.main(GeneratePdf.java:32)
Caused by: net.sf.jasperreports.engine.JRRuntimeException: No query executer factory registered for the 'MongoDbQuery' language.
at net.sf.jasperreports.engine.util.JRQueryExecuterUtils.getQueryExecuterFactory(JRQueryExecuterUtils.java:64)
at net.sf.jasperreports.engine.design.JRDesignDataset.queryLanguageChanged(JRDesignDataset.java:1122)
at net.sf.jasperreports.engine.design.JRDesignDataset.setQuery(JRDesignDataset.java:600)
at net.sf.jasperreports.engine.design.JasperDesign.setQuery(JasperDesign.java:789)
... 28 more
해결법
-
==============================
1.은 JRBeanCollectionDataSource를 사용하면 MongoDB의 커넥터를 사용하는 방법에 대한 갈 올바른 방법이 아니다. 재스퍼 MongoDB를 커넥터 소스와 함께 제공이 테스트를 살펴 보자 :
은 JRBeanCollectionDataSource를 사용하면 MongoDB의 커넥터를 사용하는 방법에 대한 갈 올바른 방법이 아니다. 재스퍼 MongoDB를 커넥터 소스와 함께 제공이 테스트를 살펴 보자 :
MongoDbDatasource / SRC / 테스트 / 자바 / COM / 재스퍼 / 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(); } }
-
==============================
2.당신은 행 다음에 추가해야합니다 :
당신은 행 다음에 추가해야합니다 :
JRProperties.setProperty("net.sf.jasperreports.query.executer.factory.MongoDbQuery", "com.jaspersoft.mongodb.query.MongoDbQueryExecuterFactory");
예를 들어, 데이터 소스 jar 파일의 경로를 확인 JS-MongoDB를 - 소스 - 0.5.0
from https://stackoverflow.com/questions/9332373/generatepdf-with-jasperreports-library-and-mongodb by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 찾을 () 및 findOne () 메소드는 다른 결과를 도시 (0) | 2019.12.26 |
---|---|
[MONGODB] 문서 및 MongoDB를에 조건을 일치의 모든 하위 문서 (사용 봄) 조회 (0) | 2019.12.26 |
[MONGODB] 고정 표시기 컨테이너 내부 MongoDB를 연결 오류 (0) | 2019.12.26 |
[MONGODB] CSV로 하위 문서에서 mongoexport 필드 (0) | 2019.12.26 |
[MONGODB] MongoDB의 배열에서의 여러 요소를 업데이트 [중복] (0) | 2019.12.26 |