grails - Jasper Report插件在Grails 2.4.2中生成PDF

标签 grails jasper-reports export-to-pdf jasper-plugin

我在grails 2.2.4中使用jasper report插件来生成PDF文件。我的 Controller 代码:

import org.codehaus.groovy.grails.plugins.jasper.JasperExportFormat
import org.codehaus.groovy.grails.plugins.jasper.JasperReportDef

class LabController {
    def jasperService
    def directpdf() {

        def reportDef = new JasperReportDef(name:'mbarang.jrxml', fileFormat:JasperExportFormat.PDF_FORMAT)

        response.contentType = 'application/pdf'
        response.outputStream << jasperService.generateReport(reportDef).toByteArray()


        return(false);
    }
}

这些代码在grails 2.2.4中正常工作。但是当我在grails 2.4.2上运行时,出现此错误:
Error 500: Internal Server Error
Message
getOutputStream() has already been called for this response

为什么我得到这个错误?

最佳答案

您应该考虑做几件事,以避免响应/输出流出现问题。

首先,您应该考虑刷新输出流:

response.outputStream.flush()

其次,您应该关闭输出流:
response.outputStream.close()

最后,您应该返回null以向Grails指示您不希望呈现 View 。
return null

以上更改将确保在 Controller 方法中正确处理输出流。

关于grails - Jasper Report插件在Grails 2.4.2中生成PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771449/

相关文章:

java - JasperReport 与 OutputStream 不导出为 PDF

java - ireports内部预览和pdf预览之间的区别

c# - Crystal Report - 横向和纵​​向导出为 PDF

java - Jasper报告,加载多个字体扩展

google-apps-script - 修改谷歌工作表纸张大小

grails - .link_to_grails_plugins 文件夹的用途是什么?

grails - 如何通过 Grails 中的继承类中的映射构造函数设置属性?

javascript - 加载时运行操作并停留在同一页面上

java - .jrxml 到 .jasper 编译错误字段未找到异常

mysql - MYSQL 中的大小写敏感性和索引