Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 在Spring Boot运行时将Jasper子报告作为参数传递_Spring Boot_Jasper Reports - Fatal编程技术网

Spring boot 在Spring Boot运行时将Jasper子报告作为参数传递

Spring boot 在Spring Boot运行时将Jasper子报告作为参数传递,spring-boot,jasper-reports,Spring Boot,Jasper Reports,我被困在一个场景中,我必须将子报告作为参数传递给我的Jasper报告对象。因为当我在本地传递参数列表中的子报告时,它工作正常,但当我在服务器上部署它时,它会说找不到我的fileName.jrxml。这不是参数问题。它的文件路径问题。由于Springboot中的文件路径解析,您需要在服务器上以流其他方式加载jrxml文件,有时会创建通常找不到的复杂路径,或者人们在定义路径时出错。 你必须遵循一些步骤 在项目的资源目录中创建文件夹 将jrxml放在那里 将jrxml文件作为流加载 InputS

我被困在一个场景中,我必须将子报告作为参数传递给我的Jasper报告对象。因为当我在本地传递参数列表中的子报告时,它工作正常,但当我在服务器上部署它时,它会说找不到我的fileName.jrxml。

这不是参数问题。它的文件路径问题。由于Springboot中的文件路径解析,您需要在服务器上以流其他方式加载jrxml文件,有时会创建通常找不到的复杂路径,或者人们在定义路径时出错。 你必须遵循一些步骤

  • 在项目的资源目录中创建文件夹

  • 将jrxml放在那里

  • 将jrxml文件作为流加载

  • InputStream=getClass().getResourceAsStream(“/yourdir/yourfile.jrxml”)

  • 将流编译成jasperReport对象

    JasperReport子报表JasperCompileManager.compileReport(流)

  • 现在将其以父报表中相同的名称传递到参数列表中

    参数put(“子报表设置”,子报表设置)

  • 以下是第3、4和第5步

    InputStream stream=getClass().getResourceAsStream("/yourdir/yourfile.jrxml");
    JasperReport subReportJasperCompileManager.compileReport(stream);
    parameters.put("sub_report", subJasperReportSetting);
         
    

    再次感谢你的建议,这对我帮助很大。一点问题也没有。这是一个解决问题的论坛。