繁体   English   中英

jasper中的JSON数据“提供的java.sql.Connection对象为null”

[英]“The supplied java.sql.Connection object is null ” for JSON data in jasper

使用JSON数据在Java中生成jasper报告时,发生以下错误。

The supplied java.sql.Connection object is null

我知道它需要连接,但是我正在使用JSON数据填充报告。 这是我的代码

    InputStream inputStream = classLoader.getResourceAsStream("filepath");
    InputStream iostream = new ByteArrayInputStream(json.toString().getBytes(StandardCharsets.UTF_8));
    JasperReport jasperReport;
    JasperPrint jasperPrint;
    Map<String, Object> parameters = new HashMap<String, Object>();
    parameters.put("AMOUNT", json.getString("AMOUNT"));
    parameters.put("CGST", json.getString("CGST"));
    parameters.put("IGST", json.getString("IGST"));
    parameters.put(JsonQueryExecuterFactory.JSON_INPUT_STREAM, iostream);
    ByteArrayOutputStream  pdfReport = new ByteArrayOutputStream();
    try {
        jasperReport = JasperCompileManager.compileReport(inputStream);
        jasperPrint = JasperFillManager.fillReport(jasperReport, parameters);
        JRPdfExporter exporter = new JRPdfExporter();
        exporter.setExporterInput(new SimpleExporterInput(jasperPrint));
        exporter.setExporterOutput(new SimpleOutputStreamExporterOutput(pdfReport)); 
        SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
        exporter.setConfiguration(configuration);
        exporter.exportReport();
    } catch (JRException e) {
        e.printStackTrace();
    }

当我尝试填写报告时,它给出了错误。 我已经制作了JSON_INPUT_STREAM并通过了地图,不知道如何通过连接。有帮助吗? 提前致谢

如果您还发布jrxml文件,将会更容易。 但是,从理论上讲,您必须选择:

首先,查看是否在jrxml文件中使用了参数REPORT_CONNECTION(或类似的参数,这是jasper在创建新报表时创建的默认参数)。

现在:

  1. 如果您这样做并且不需要它,因为您没有直接从bd获取任何东西,请修复jrxml中的代码。

  2. 如果您确实需要它,请使用以下方式发送它:

     Connection conn; try { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); conn = DriverManager.getConnection (connection_url, user, password); ......[your code] jasperReport = JasperCompileManager.compileReport(inputStream); jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, conn); ...... } catch (Exception ex) {} 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM