&引用;提供的java.sql.Connection对象为空";用于jasper中的JSON数据

&引用;提供的java.sql.Connection对象为空";用于jasper中的JSON数据,java,jasper-reports,Java,Jasper Reports,使用JSON数据在java中生成jasper报告时,出现以下错误 The supplied java.sql.Connection object is null 我知道它需要连接,但我使用JSON数据来填充报告。这是我的密码 InputStream inputStream = classLoader.getResourceAsStream("filepath"); InputStream iostream = new ByteArrayInputStream(json.toSt

使用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();
    }
InputStream-InputStream=classLoader.getResourceAsStream(“文件路径”);
InputStream iostream=new ByteArrayInputStream(json.toString().getBytes(StandardCharsets.UTF_8));
贾斯佩雷波特;
茉莉花;
映射参数=新的HashMap();
parameters.put(“AMOUNT”,json.getString(“AMOUNT”);
parameters.put(“CGST”,json.getString(“CGST”);
parameters.put(“IGST”,json.getString(“IGST”);
put(jsonqueryxecuterfactory.JSON\u INPUT\u STREAM,iostream);
ByteArrayOutputStream pdfReport=新建ByteArrayOutputStream();
试一试{
jasperReport=jaspecompilemanager.compileReport(inputStream);
jasperPrint=JasperFillManager.fillReport(jasperReport,参数);
JRPdfExporter exporter=新的JRPdfExporter();
exporter.setExporterInput(新的SimpleExporterInput(jasperPrint));
exporter.setExporterOutput(新的SimpleOutputStreamExporterOutput(pdfReport));
SimplePDExporterConfiguration配置=新的SimplePDExporterConfiguration();
exporter.setConfiguration(配置);
出口商。出口报告();
}捕获(JRE异常){
e、 printStackTrace();
}
当我试图填写报告时,它给出了错误。我已经制作了JSON\u INPUT\u STREAM并通过了地图。不知道如何通过连接。有什么帮助吗?
提前感谢

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

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

现在:

  • 如果您不需要它,因为您没有直接从bd获取任何内容,请修复jrxml中的代码

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

    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) {}