Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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
Java 在SpringBoot中将生成的报告作为电子邮件附件发送_Java_Spring Mvc_Spring Boot_Jasper Reports - Fatal编程技术网

Java 在SpringBoot中将生成的报告作为电子邮件附件发送

Java 在SpringBoot中将生成的报告作为电子邮件附件发送,java,spring-mvc,spring-boot,jasper-reports,Java,Spring Mvc,Spring Boot,Jasper Reports,我希望能够将JasperReports生成的报告作为附件发送。目前,在我的应用程序中,我可以使用JasperReportsViewResolver查看报告。下面是我的配置 @Bean public JasperReportsViewResolver getJasperReportsViewResolver() { JasperReportsViewResolver resolver = new JasperReportsViewResolver(); resolver.setPrefix

我希望能够将JasperReports生成的报告作为附件发送。目前,在我的应用程序中,我可以使用JasperReportsViewResolver查看报告。下面是我的配置

@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
  JasperReportsViewResolver resolver = new JasperReportsViewResolver();
  resolver.setPrefix("classpath:/static/jasper/");
  resolver.setSuffix(".jrxml");
  resolver.setReportDataKey("datasource");
  resolver.setViewNames("rpt_*");
  resolver.setViewClass(JasperReportsMultiFormatView.class);
  resolver.setOrder(0);
  return resolver;
}  
我无法从这个viewresolver获取输入资源,所以下面是我的想法,但我不确定这是否是最好的方法

 JasperDesign jasperDesign =  JRXmlLoader.load(getClass().getResourceAsStream("/jasper/rpt_media.jrxml"));
 JasperReport report = JasperCompileManager.compileReport(jasperDesign);
 JRDataSource reportData = new JREmptyDataSource();

 Map<String, Object> parameters = new HashMap<String, Object>();
 parameters.put("reportTitle", "dfa dafdf d dfd");

 OutputStream stream = new FileOutputStream(tempfile);

 JasperReportsUtils.renderAsPdf(report, parameters, reportData, stream);
    JRDataSource ds = new JRBeanCollectionDataSource(reportList);

    Resource report = new ClassPathResource("static/jasper/rpt_report.jasper");

    JasperPrint jasperPrint = JasperFillManager.fillReport(report.getInputStream(), Collections.EMPTY_MAP,ds);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    JasperExportManager.exportReportToPdfStream(jasperPrint, baos);
    DataSource aAttachment =  new ByteArrayDataSource(baos.toByteArray(), "application/pdf");

    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message);

    helper.setTo("xxxxxx");

    helper.setFrom("xxxxx");
    helper.setSubject("Testing Email");

    String text = "Testing Email";

    helper.setText(text, false);

    helper.addAttachment("report.pdf",aAttachment);

    mailSender.send(message);
JasperDesign-JasperDesign=jrxmloader.load(getClass().getResourceAsStream(“/jasper/rpt_media.jrxml”);
JasperReport=JasperCompileManager.compileReport(jasperDesign);
JRDataSource reportData=新的JREptyDatasource();
映射参数=新的HashMap();
参数put(“报告标题”、“dfa DAFD dfd”);
OutputStream=新文件OutputStream(tempfile);
renderAsPdf(报告、参数、报告数据、流);
在将报告保存到随机文件后,我确实阅读了它并将其作为附件发送


还有其他建议吗?

我发现下面是最好的方法

 JasperDesign jasperDesign =  JRXmlLoader.load(getClass().getResourceAsStream("/jasper/rpt_media.jrxml"));
 JasperReport report = JasperCompileManager.compileReport(jasperDesign);
 JRDataSource reportData = new JREmptyDataSource();

 Map<String, Object> parameters = new HashMap<String, Object>();
 parameters.put("reportTitle", "dfa dafdf d dfd");

 OutputStream stream = new FileOutputStream(tempfile);

 JasperReportsUtils.renderAsPdf(report, parameters, reportData, stream);
    JRDataSource ds = new JRBeanCollectionDataSource(reportList);

    Resource report = new ClassPathResource("static/jasper/rpt_report.jasper");

    JasperPrint jasperPrint = JasperFillManager.fillReport(report.getInputStream(), Collections.EMPTY_MAP,ds);
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    JasperExportManager.exportReportToPdfStream(jasperPrint, baos);
    DataSource aAttachment =  new ByteArrayDataSource(baos.toByteArray(), "application/pdf");

    MimeMessage message = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(message);

    helper.setTo("xxxxxx");

    helper.setFrom("xxxxx");
    helper.setSubject("Testing Email");

    String text = "Testing Email";

    helper.setText(text, false);

    helper.addAttachment("report.pdf",aAttachment);

    mailSender.send(message);

什么是特定的库导入jar文件?这个网址对我有用