为什么报告生成器在升级到 tomcat 8.0.43 时引发异常

Why is report generator raising exception when upgrading to tomcat 8.0.43

我们发现 JasperReports 在 tomcat 从 8.0.30 升级到 8.0.43 时会引发以下错误。

JasperCompileManager.compileReport(jrxmlFilePathname);
---------------------^^^^^^^^^^^^^

Errors were encountered when compiling report expressions class file:
1. java.lang.Double cannot be resolved to a type
            value = ((java.lang.Double)field_amount.getValue()); //$JR_EXPR_ID=15$
                      <-------------->

降级 tomcat 到 8.0.30

后此错误消失

升级到 JasperReports 6.3.1,旧版本存在与 ECJ 4.6.0 或更新版本的报告编译相关的错误。

Tomcat 8.0.43 附带 ECJ 4.6.1,而 Tomcat 8.0.30 附带 ECJ 4.4.2。

或者(如果您不想升级 JasperReports),将 ecj-4.3.1.jar 包含在您的网络应用程序 WEB-INF/lib 下。