JasperReports 6.3。获取queryString使用的plsql语言的'class com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory not found'错误

时间:2017-04-19 07:05:40

标签: java jasper-reports

尝试将报告从 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 ,这将是什么工作?

1 个答案:

答案 0 :(得分:1)

您应该检查 jasperreports.properties 文件中是否定义了 plsql 语言的处理程序( Executer ) 。

正确的定义(对于 6.x 版本)是:

net.sf.jasperreports.query.executer.factory.plsql=net.sf.jas‌​perreports.engine.qu‌​ery.PlSqlQueryExecut‌​erFactory

自从以前版本的 JasperReports 引擎以来,你可能会有不同的东西。

BTW, JasperReports 3.5.3 不支持此扩展( plsql )。我认为在你的案例中使用 com.jaspersoft.jrx.query.PlSqlQueryExecuterFactory 是某种存根/修复。