【发布时间】:2011-02-01 02:06:10
【问题描述】:
我是 jasper 报告的新手,我需要使用 BeanDatasource 和子报告创建 pdf 文档。 我参考以下博客“http://knol.google.com/k/jasper-reports-working-with-beans-and-sub-report#”。我完美地遵循了所有步骤。当我使用 IReport 运行报告时,我可以获得包含内容的 pdf 文档。但是当我们尝试从 java 程序创建时,我在以下行中遇到异常
第 110 行:" JasperFillManager.fillReportToFile("C:/JasperReports/contacts.jasper", parameters, new JRBeanCollectionDataSource(TestPerson.getBeanCollection())); "
这是我在 Eclipse 控制台窗口中遇到的以下错误。
java.lang.NullPointerException 在 net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 java.io.ObjectStreamClass.invokeReadObject(Unknown Source) at java.io.ObjectInputStream.readSerialData(未知来源)在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)在 java.io.ObjectInputStream.readObject0(未知来源)在 java.io.ObjectInputStream.defaultReadFields(未知来源)在 java.io.ObjectInputStream.readSerialData(未知来源)在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)在 java.io.ObjectInputStream.readObject0(未知来源)在 java.io.ObjectInputStream.readArray(Unknown Source) 在 java.io.ObjectInputStream.readObject0(未知来源)在 java.io.ObjectInputStream.defaultReadFields(未知来源)在 java.io.ObjectInputStream.readSerialData(未知来源)在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)在 java.io.ObjectInputStream.readObject0(未知来源)在 java.io.ObjectInputStream.defaultReadFields(未知来源)在 java.io.ObjectInputStream.readSerialData(未知来源)在 java.io.ObjectInputStream.readOrdinaryObject(未知来源)在 java.io.ObjectInputStream.readObject0(未知来源)在 java.io.ObjectInputStream.readObject(Unknown Source) 在 net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88) 在 net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:257) 在 net.sf.jasperreports.engine.fill.JRFillSubreport.evaluateSubreport(JRFillSubreport.java:308) 在 net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:257) 在 net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275) 在 net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:426) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1380) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:692) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:255) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:113) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:891) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814) 在 net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89) 在 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601) 在 test.TestJasperReport.main(TestJasperReport.java:110)
【问题讨论】:
-
您能否将代码发布到 JasperFillManager.fillReportToFile("C:/JasperReports/contacts.jasper", parameters, new JRBeanCollectionDataSource(TestPerson.getBeanCollection())); "
-
我在不同的上下文中重现了这个问题:
JasperRunManager.runReportToPdf(myURL.openStream(), paramsMap, dataSource)其中所有参数都是非空的,myURL.openStream() 是一个打开的 .jasper 文件。
标签: jasper-reports