Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/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
Jasper reports 如何解决jasper报告中的nullPointer异常?_Jasper Reports - Fatal编程技术网

Jasper reports 如何解决jasper报告中的nullPointer异常?

Jasper reports 如何解决jasper报告中的nullPointer异常?,jasper-reports,Jasper Reports,我是jasper report的新手,我需要使用BeanDatasource和subreport创建pdf文档。 我指的是下面的博客“”。我完美地遵循了所有的步骤。当我使用IReport运行报告时,我可以获取包含内容的pdf文档。但当我们尝试从java程序创建时,我在下面的代码行中遇到了异常 行号110:“JasperFillManager.fillReportToFile(“C:/JasperReports/contacts.jasper”,参数,新的JRBeanCollectionDataS

我是jasper report的新手,我需要使用BeanDatasource和subreport创建pdf文档。 我指的是下面的博客“”。我完美地遵循了所有的步骤。当我使用IReport运行报告时,我可以获取包含内容的pdf文档。但当我们尝试从java程序创建时,我在下面的代码行中遇到了异常

行号110:“JasperFillManager.fillReportToFile(“C:/JasperReports/contacts.jasper”,参数,新的JRBeanCollectionDataSource(TestPerson.getBeanCollection());

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

位于的java.lang.NullPointerException net.sf.jasperreports.engine.JRPropertiesMap.readObject(JRPropertiesMap.java:185) 位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 位于的sun.reflect.NativeMethodAccessorImpl.invoke(未知源) sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)位于 java.lang.reflect.Method.invoke(未知源代码)位于 位于的java.io.ObjectStreamClass.invokeReadObject(未知源) 位于的java.io.ObjectInputStream.readSerialData(未知源) 位于的java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于的java.io.ObjectInputStream.readObject0(未知源) 位于的java.io.ObjectInputStream.defaultReadFields(未知源) 位于的java.io.ObjectInputStream.readSerialData(未知源) 位于的java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于的java.io.ObjectInputStream.readObject0(未知源) 位于的java.io.ObjectInputStream.readArray(未知源) 位于的java.io.ObjectInputStream.readObject0(未知源) 位于的java.io.ObjectInputStream.defaultReadFields(未知源) 位于的java.io.ObjectInputStream.readSerialData(未知源) 位于的java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于的java.io.ObjectInputStream.readObject0(未知源) 位于的java.io.ObjectInputStream.defaultReadFields(未知源) 位于的java.io.ObjectInputStream.readSerialData(未知源) 位于的java.io.ObjectInputStream.ReadOrderinaryObject(未知源) 位于的java.io.ObjectInputStream.readObject0(未知源) 位于的java.io.ObjectInputStream.readObject(未知源) 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)


您传递给报表的属性中有一个似乎为空


我建议您在调试过程中逐步检查代码。

我遇到了类似的问题,发现iReports有一个自动更新,并且它生成的文件与我的应用程序构建中引入的Jasper版本不再兼容

我通过确保下载了最新的iReports和最新的Jasper报告来解决这个问题


iReport v3.7.4和Jasper Reports v3.7.4。

能否将代码发布到JasperFillReportToFile(“C:/JasperReports/contacts.Jasper”,参数,新的JRBeanCollectionDataSource(TestPerson.getBeanCollection());“我在另一个上下文中重现了这个问题:
jaspernmanager.runreporttopf(myURL.openStream(),paramsMap,dataSource)
其中所有参数都是非空的,myURL.openStream()是一个open.jasper文件。升级到所有JAR的最新版本(这里是itext,jasperreports,commons loggins)在我的应用程序中使用帮助我并解决了我的问题。您如何获得您正在使用的iReport版本的相关最新JAR?