如何在jasper报告中解决这个nullPointer异常?

时间:2010-03-26 08:23:21

标签: jasper-reports

我是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“,参数,新JRBeanCollectionDataSource(TestPerson.getBeanCollection()));

这是我在Eclipse控制台窗口中收到的以下错误。

  

java.lang.NullPointerException at   net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   java.io.Object.StreamClass.invokeReadObject(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.readArray(未知来源)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.defaultReadFields(未知来源)at   java.io.ObjectInputStream.readSerialData(未知来源)at   java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)at   java.io.ObjectInputStream.readObject0(未知来源)at   java.io.ObjectInputStream.readObject(未知来源)at   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)

2 个答案:

答案 0 :(得分:7)

答案 1 :(得分:1)

您传递给报告的属性看起来像是空的。

我建议在调试中逐步执行代码。