0

grails バージョン 2.4.0 とJasperReportsプラグイン: 1.9.0 (バージョン jasper-1.10.0-SNAPSHOT も試しました) を使用していますが、pdf にエクスポートするとエラーが発生しました。

プロジェクトを初めて開始したときにエクスポート レポートを実行すると、このメッセージが表示されました

org.apache.commons.collections.map.ReferenceMap

その後、再試行すると、このエラーが表示されます。

Could not initialize class net.sf.jasperreports.engine.xml.JRXmlDigesterFactory

2.2.4で動作するのでバージョン2.4.0と競合しそうです

ここに私のコード

コントローラ内

def results = new ArrayList()
        def reportFolder = "${grailsApplication.parentContext.getResource('reports').file.absolutePath}"
        def sep = System.getProperty('file.separator')
        def app = Applicant.get(2)
        results.add(
                first: app.firstName,
                middle: app?.middleInitial,
                last: app.lastName,
                ssn: app.ssn,
                workPhone: app.workPhone,
                homePhone: app.homePhone
        )
reportService.exportPDFReport("${reportFolder}${sep}aaa.jrxml", results, params, response)

サービス中 (サービス名は reportService であることに注意してください)

def exportPDFReport(String reportPath, results, params, response) {
        def temp_file = File.createTempFile("jasperReport", ".pdf")
        def jrDataSource = new JRMapCollectionDataSource(results)
        JasperReport jReport = JasperCompileManager.compileReport(reportPath)
        JasperPrint print = JasperFillManager.fillReport(jReport, params, jrDataSource)
        JasperExportManager.exportReportToPdfFile(print, temp_file.absolutePath)
        response.setContentType("application/force-download")
        response.setHeader("Content-Transfer-Encoding", "binary")
        response.setHeader("Content-disposition", "attachment; filename=${jReport.name}.pdf")
        response.outputStream << temp_file.newInputStream()
        temp_file.deleteOnExit()
    }

何か案は?

4

2 に答える 2

0

バージョン 2.4 では、Holder 静的クラスが削除されました。これらのクラスをまだ使用しているプラ​​グインでは、エラーが発生します。また、にやにや笑いの代わりにバージョン 2.4.2 を試してみます。また、デバッグに役立つ完全なスタック トレースを編集して提供していただけますか。

于 2014-08-02T18:44:44.860 に答える