查看使用外部化连接配置文件的 birt 报告

Viewing birt report that uses externalized connection profile

本文关键字:配置文件 birt 报告 连接 外部化      更新时间:2023-09-26

在使用外部化连接配置文件查看 birt 报告时收到以下错误。

org.eclipse.birt.report.engine.api.EngineException: Error happened while running the report.
   ..............................
   at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
   at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
   at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.LinkageError: Failed to link org/eclipse/core/resources/IResource (Module "deployment.qv.war:main" from Service Module Loader)
   at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:437)
   at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:269)
   .......................................................
   at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:258)
   at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:269)
... 73 more
Caused by: java.lang.NoClassDefFoundError: org/eclipse/core/runtime/jobs/ISchedulingRule
   at java.lang.ClassLoader.defineClass1(Native Method)
   at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
   at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:353)
   at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:432)
... 113 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.core.runtime.jobs.ISchedulingRule from [Module "deployment.qv.war:main" from Service Module Loader]
   at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
   at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)

之前打开脚本我有一个以下脚本

var myresourcefolder = reportContext.getDesignHandle().getResourceFolder();
this.setExtensionProperty("OdaConnProfileStorePath", myresourcefolder + "/reports/reportName.cps")

我在创建报告时遵循了这一点。我可能错过了什么?

如果您使用任务来呈现报表,则可以设置与该任务的 JDBC 连接,而不必将每个报表配置为使用它:

IReportRunnable runnable = engine.openReportDesign(design);
IRunAndRenderTask task = engine.createRunAndRenderTask(runnable);
//Where 'conn' is java.sql.Connection
task.getAppContext().put("OdaJDBCDriverPassInConnection", conn);
task.run();

另请参阅:

  • 通过其 API 设置 BIRT 数据源