将JasperReport导入iReport到Java应用程序时出现异常

时间:2011-08-04 13:36:56

标签: java jasper-reports ireport

我正在尝试将一个中等复杂的报告导入我的java应用程序。该报告包括子查询,样式模板(jrtx)和图像。一切都在iReport中运行良好,但是当我尝试在应用程序中运行报表时,它给出了以下错误:

exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML

root cause
net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML

root cause
org.xml.sax.SAXParseException: Element type "paragraph" must be declared.

我正在使用iReport版本4.0.2(启用4.0.1兼容模式)来开发报告,使用net.sf.jasperreports 4.0.1来运行我的应用程序上的报告。注意:iReport版本与jasperReport版本匹配。

1 个答案:

答案 0 :(得分:0)

显然,iReport的4.0.1兼容模式不能100%运行。当弄乱某些属性时,iReport 4.0.2会插入标记。 JasperReport 4.0.1中不存在<paragraph>标记。如果我在报表中嵌入了任何段落样式而不是样式模板,我会在编译时捕获到它。模板在运行时被考虑。

我转换了我的模板:

From:
<jasperTemplate>
...
  <style name="in-detail-fields">
    <paragraph leftIndent="3" rightIndent="3"/>
  </style>
...
</jasperTemplate>

To:
<jasperTemplate>
...
  <style name="in-detail-fields" leftIndent="3" rightIndent="3" />
...
</jasperTemplate>

不幸的是,在更改模板后,iReport 4.0.2无法正确解释模板。 :-(。一个更好的解决方案可能是将iReport降级到正确的版本。