我正在尝试在我的Spring项目中使用Birt ReportEngine。我已经成功生成了一个在Eclipse中运行的report.rptdesign。 现在我想在我的应用程序中使用这个'report.rptdesign'并生成某种输出(PDF / HTML,无所谓)。 我添加了
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.2.2</version>
</dependency>
进入我的pom.xml。此外,我已添加(并手动创建)
的两个路径-Dorg.eclipse.datatools_workspacepath=C:\apache-tomcat-7.0.30\temp\workspace_dtp
-Dorg.eclipse.datatools.connectivity_workspacepath=C:\apache-tomcat-7.0.30\temp\workspace_dtp\org.eclipse.datatools.connectivity
但我多次收到错误。
org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
SEVERE: Error loading connection profile data.
org.eclipse.datatools.connectivity.internal.ConnectivityPlugin log
SEVERE: Error saving connection profile data.
我的report.rptdesign使用'db'文件连接到我在report.rptdesign中正确引用的数据库.rptdesign
<data-sources>
<oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc.dbprofile" name="DB MySql" id="18">
....
<property name="OdaConnProfileStorePath">C:\workspace-sts\myproject\test\db</property>
</oda-data-source>
</data-sources>
更新 我使用的代码:
DesignConfig config = new DesignConfig();
Platform.startup(config);
IDesignEngineFactory factory = (IDesignEngineFactory) Platform.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY);
IDesignEngine designEngine = factory.createDesignEngine(config);
SessionHandle session = designEngine.newSessionHandle(ULocale.ENGLISH);
ReportDesignHandle designHandle = session.openDesign("myReport.rtpdesign");
ElementFactory designFactory = designHandle.getElementFactory();
designHandle.close();
EngineConfig engineConfig = new EngineConfig();
Platform.startup(engineConfig);
IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
IReportEngine reportEngine = factory.createReportEngine(engineConfig);
IReportRunnable design = reportEngine.openReportDesign(designHandle);
IRunAndRenderTask task = reportEngine.createRunAndRenderTask(design);
我是否需要将'db'文件放在其他位置?我已经在classpath等中尝试了几个位置。
此致 曼努埃尔
答案 0 :(得分:0)
如果连接配置文件存储设置为相对路径,则必须在启动平台之前为birt引擎配置提供resourcePath。例如:
engineConfig.setResourcePath("/myResourcePath");
相对于此resourcePath搜索连接存储。