尝试将报告从 JasperReports 3.5.3 升级到 6.3.1 。
来自 jrxml 的片段:
<queryString language = "plsql"> <![CDATA[{call RPT_OCP($P{CUR},$P{ORACLE_REF_CURSOR})}]]> </queryString>
在尝试编译报告时,面临以下异常,
Caused by: net.sf.jasperreports.engine.JRRuntimeException: net.sf.jasperreports.engine.JRException: Class com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory not found.
[java] at net.sf.jasperreports.engine.design.JRDesignDataset.queryLanguageChanged(JRDesignDataset.java:1255)
[java] at net.sf.jasperreports.engine.design.JRDesignDataset.setQuery(JRDesignDataset.java:695)
[java] at net.sf.jasperreports.engine.design.JasperDesign.setQuery(JasperDesign.java:881)
[java] ... 37 more
6.3.1版本的 JasperReports 没有任何 jasperreport-extentions jar ,这将是什么工作?
答案 0 :(得分:1)
您应该检查 jasperreports.properties 文件中是否定义了 plsql 语言的处理程序( Executer ) 。
正确的定义(对于 6.x 版本)是:
net.sf.jasperreports.query.executer.factory.plsql=net.sf.jasperreports.engine.query.PlSqlQueryExecuterFactory
自从以前版本的 JasperReports 引擎以来,你可能会有不同的东西。
BTW, JasperReports 3.5.3 不支持此扩展( plsql )。我认为在你的案例中使用 com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory 是某种存根/修复。