【发布时间】:2016-04-13 08:47:25
【问题描述】:
我有一个 Maven jar 项目,我在其中使用 Birt 来生成一些 PDF。
为了使用 Birt 引擎,我刚刚将此依赖项添加到我的<dependencies>:
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.4.2</version>
</dependency>
我使用mvn exec:java 运行我的主类。
我的问题是:当我在没有 Maven 的情况下使用 Birt 运行时,我可以在 plugins 目录中添加 Birt 插件并修改 plugins/org.eclipse.birt.report.engine.fonts_4.4.2.v201410272105/fontsConfig.xml 以添加特定的 <font-paths><path ...,我该如何使用这个 Maven环境?
我现在也不确定我必须给org.eclipse.birt.core.framework.PlatformConfig.setBIRTHome(String) 或org.eclipse.birt.report.engine.api.EngineConfig.setEngineHome(String) 提供哪条路径。
我尝试关注 the guide 并使用了 config.setEngineHome("absolute_path_to_a_4.4.2_osgi_birt_runtime"),但后来我得到了那个堆栈跟踪(在对 factory.createReportEngine(config) 的调用中):
java.lang.NullPointerException
at org.eclipse.birt.report.engine.api.impl.ReportEngine$EngineExtensionManager.<init>(ReportEngine.java:822)
at org.eclipse.birt.report.engine.api.impl.ReportEngine.<init>(ReportEngine.java:111)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:18)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory$1.run(ReportEngineFactory.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.birt.report.engine.api.impl.ReportEngineFactory.createReportEngine(ReportEngineFactory.java:14)
似乎Platform.getExtensionRegistry() 返回null...
如果我不调用config.setEngineHome 或config.setBIRTHome,那么我有org.eclipse.birt.report.engine.api.impl.ParameterValidationException: Required parameter myParam is not set.,这是我在迁移到Maven 之前没有的错误(实际上,我的rptdesign 使用myParam 从链接库)。
我也已将我的问题发布到Birt dev forums。
【问题讨论】: