【问题标题】:Schedule jasper report using quartz scheduler使用石英调度器安排碧玉报告
【发布时间】:2024-01-16 15:20:01
【问题描述】:

我正在使用石英来创建计划并运行作业。但是,我需要在其中一项工作中生成并发送碧玉报告。我知道可以使用 jasper 服务器来安排报告,但我已经安排在我的 java 应用程序中创建。如何使用 java 应用程序创建报告。

我阅读了链接 - Jasper Report scheduler

简而言之,如何要求 jasper 服务器创建报告并让石英作业向给定用户发送电子邮件。

public class MyJob implements Job {

@Override
public void execute(JobExecutionContext context) throws JobExecutionException {

    System.out.println("Context : " + context.toString());

  //Can we create the jasper report here and then send using email, I have jasper server but I wanted to use the separate job to process the report and send. 

 }

【问题讨论】:

  • 如果您需要与 JasperServer 分开执行此作业,您必须将服务器报告中的 .jasper.jrxml 文件添加到应用程序,然后从 Quartz 作业中调用它。
  • 如果您只需要从作业中调用它而不是单独调用,您可以通过 REST API 从 JasperServer 调用报告,然后在 Quartz 作业中做任何您想做的事情。
  • 好的。如何将石英调度程序集成到 Jasper 服务器中。我已经创建了多个调度程序和多个作业。现在我需要使用计划的作业发送 Jasper 报告。既然你提到我可以使用单独的实例来做到这一点,那么我们如何让 Jasper 服务器知道我的日程安排并调用作业

标签: java jasper-reports quartz-scheduler


【解决方案1】:

您可以通过 REST API 访问您的 JasperServer,并在 Quarz 调度程序中完成其余工作。
1) 开始 Quartz 工作。
2) 在 Jasper 服务器上进行身份验证 (here is documentation)
3) 通过 REST API (documentation) 调用报告
4) 得到结果并做任何你想做的事(例如发送到电子邮件)。
5) 结束 Quartz 作业。

【讨论】: