[BIRT报表]Platform.createFactoryObject returns null

config = new EngineConfig();
config.setEngineHome(birtHome.getAbsolutePath());
if (birtLog != null) {
config.setLogConfig(birtLog, Level.WARNING);
}
System.out.println("config=" +config);
Platform.startup(config);
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
System.out.println("factory=" +factory);

engine = factory.createReportEngine(config);

======================================分割线======================================

在设计BIRT报表系统的时候,调用报表引擎,但是在运行的时候,出现错误:
exception is java.lang.NullPointerException

仔细排查,发现是在这一步:
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);

获取factory的时候,获取的值为空:

google了很久,发现国外很多人也出现同样的问题,有些是和平台版本有关,比如在ios,Linux上运行正常,只在windows上有错:

我也遇到同样错误,最终solution由两个:
1.去网上下载一个同样版本的birt-runtime,将其中的ReportEngine替换掉自己的工程里面的报表引擎;

2.这个方法解决了我的问题,但是不一定对其他朋友适用:

删除工程中:

ReportEngine\configuration\org.eclipse.core.runtime\.manager

目录下的所有文件。

再次运行,factory(Platform.createFactoryObject)就不为空了。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值