2012-06-12 66 views
1

我正在升级我的JasperReports版本,如标题所述。 我不太了解JasperReports版本升级。为了使它工作,我必须改变所有的事情。我有最新的.jar文件的一切。但是,当我打印我的.PDF报告时,它给了我这个错误。将JasperReports 1.3.1升级到JasperReports 4.6

error:could not open file because its damaged or not supported. 

在日食它显示了这个异常

java.lang.NoSuchFieldError: PRINTSCALING at 
net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExpor‌​ter.java:532) at 
net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java‌​:396) at 
net.sf.jasperreports.engine.JasperExportManager.exportToPdf(JasperExportManager.‌​java:212) at 
net.sf.jasperreports.engine.JasperExportManager.exportReportToPdf(JasperExportMa‌​nager.java:536) at 
com.sibisoft.northstar.util.JasperReportGenerator.getPdfByteArray(JasperReportGe‌​nerator.java:679) 

请帮助我。

+0

如果可能,添加一些屏幕快照/链接。 –

+0

java.lang.NoSuchFieldError的:PRINTSCALING \t在net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:532) \t在net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter。的java:396) \t在net.sf.jasperreports.engine.JasperExportManager.exportToPdf(JasperExportManager.java:212) \t在net.sf.jasperreports.engine.JasperExportManager.exportReportToPdf(JasperExportManager.java:536) \t在玉米.sibisoft.northstar.util.JasperReportGenerator.getPdfByteArray(JasperReportGenerator.java:679) –

+0

这是例外 –

回答

4

问题不在于JasperReports,而在于您正在使用的iText库的版本。您需要下载2.1.7版以使用该版本的JasperReports。你可以从here得到它。


我碰巧知道这一次把我的头顶部,因为我过去碰到了它,但作为未来的一个有用的注意,这是我最初用来弄明白的过程。

由于JasperReports是开源的,代码可以很容易在网上找到。所以我谷歌:

site:grepcode.com net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream

要在线查找代码。 (GrepCode基本上提供了一个很酷的站点来查看许多开源项目源代码。)

在GrepCode页面的顶部,他们有项目的版本,因此请确保它指向您正在使用的版本。

然后找到错误消息中的方法或行号。

从这里就像调试本地代码一样。你可以看到有问题的类是什么,它属于哪个包。在这种情况下,它指向了itext libray作为罪魁祸首。

希望能帮助你在未来和快乐的报道。

+0

感谢您的帮助。我现在正在尝试这件事。我会让你我会成功的。非常感谢您的帮助 –

+0

谢谢你,我已经试过你调试问题的方式。我实际上导入了jar源文件。这对我帮助很大。因为我能够知道它给出这个错误的确切原因。 –

+0

那么你是否得到它的工作? –