如何获取 Grails 的 jasper 报告的数据源连接?

Posted

技术标签:

【中文标题】如何获取 Grails 的 jasper 报告的数据源连接?【英文标题】:How to get Grails's datasource connection for jasper reports? 【发布时间】:2017-04-19 14:14:46 【问题描述】:

目前,我正在使用 JasperReports JSF 插件在现有的基于 JSF 的应用程序上添加和开发带有 jasper 的 PDF 导出。

事情是这样的,这个应用程序的端点连接到 Grails。因此,我的 JSF 应用程序直接连接到设置的 Oracle 数据库,而我的 JSF 应用程序必须在每次需要来自数据库的数据以将其作为 JSON 返回时向 Grails 应用程序发出请求。

在我设计的 jasper 模板中,有一个查询需要 JDBC 连接到我自己的数据库。在这种情况下,我必须为 jasperreports 插件的fillreport 方法提供一个连接对象。

JasperPrint jasperPrint = JasperFillManager.fillReport(urlJasper, parameters, connection);

这是JasperFillManager对象中的fillreport方法:

public static JasperPrint fillReport(String sourceFileName, Map<String, Object> params, Connection connection) throws JRException 
    // <editor-fold defaultstate="collapsed" desc="Compiled Code">
    /* 0: invokestatic  net/sf/jasperreports/engine/JasperFillManager.getDefaultInstance:()Lnet/sf/jasperreports/engine/JasperFillManager;
     * 3: aload_0
     * 4: aload_1
     * 5: aload_2
     * 6: invokevirtual net/sf/jasperreports/engine/JasperFillManager.fill:(Ljava/lang/String;Ljava/util/Map;Ljava/sql/Connection;)Lnet/sf/jasperreports/engine/JasperPrint;
     * 9: areturn
     *  */
    // </editor-fold>

主要问题是,我可以从 Grails 的数据源中获取连接对象吗?因为据我所知,从 Grails 到 JSF 的输出始终是 JSON 格式。非常感谢。抱歉解释不好。

【问题讨论】:

也不是 jsf 不是 java-se 连接到数据源。所以我希望一些grails专家可以帮助你...... 【参考方案1】:

注入数据源

Datasource dataSource

然后调用

dataSource.getConnection()

【讨论】:

很抱歉,JSF 应用程序需要连接,而不是 Grails 应用程序。 那么这和 Grails 有什么关系呢?

以上是关于如何获取 Grails 的 jasper 报告的数据源连接?的主要内容,如果未能解决你的问题,请参考以下文章

如何将两个jrxml jasper报告合并为一个单独的pdf输出文件

如何限制jasper报告不要在每个组的新页面上启动?

连接mysql时Jasper报告服务器连接失败

在 Jasper 报告的甘特图上自定义日期

Jasper报告:当其中一个子报告没有数据时,主报告为空白

如何避免获取java.lang.NoClassDefFoundError:org / apache / commons / logging / LogFactory