問候,我們正在嘗試使用來自here的樣本將BIRT集成到我們的桌面獨立應用程序中。沒有OSGi框架的BIRT
問題是 - 如何避免使用OSGi框架。我們可以將所有必需的庫和插件放入生成的EAR中,而無需將報表引擎設置回家嗎?因爲我們的客戶不會很高興需要下載額外的運行時。是否真的需要這麼大的運行時間(大約100兆字節,我猜)。
問候,我們正在嘗試使用來自here的樣本將BIRT集成到我們的桌面獨立應用程序中。沒有OSGi框架的BIRT
問題是 - 如何避免使用OSGi框架。我們可以將所有必需的庫和插件放入生成的EAR中,而無需將報表引擎設置回家嗎?因爲我們的客戶不會很高興需要下載額外的運行時。是否真的需要這麼大的運行時間(大約100兆字節,我猜)。
對不起,但是如果不運行OSGi,真的沒有辦法運行BIRT報告。如果不使用它們,可以修剪一些模塊。例如圖表可能會被刪除,但圖表不起作用。顯然你可以刪除示例數據庫以及支持它的德比插件。
在這些明顯的項目之後,刪除插件變得更加困難。
由於Birt 3.7,你可以使用Birt POJO Runtime(你可以檢查它the Birt website)。
你要做的唯一一件事情就是不呼叫EngineConfig.setEngineHome(engineHome)
如果按照the Birt website,你的代碼看起來就像這樣:
try{
final EngineConfig config = new EngineConfig();
//As of 3.7.2, BIRT now provides an OSGi and a POJO Runtime.
//config.setEngineHome("C:\\birt-runtime-2_6_2\\birt-runtime-2_6_2\\ReportEngine");
config.setLogConfig("c:/temp", Level.FINE);
Platform.startup(config);
//If using RE API in Eclipse/RCP application this is not needed.
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject(IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY);
IReportEngine engine = factory.createReportEngine(config);
engine.changeLogLevel(Level.WARNING);
}catch(Exception ex){
ex.printStackTrace();
}
// Run reports, etc.
...
// destroy the engine.
try
{
engine.destroy();
Platform.shutdown();
//Bugzilla 351052
RegistryProviderFactory.releaseDefault();
}catch (EngineException e1){
// Ignore
}
@S你放棄BIRT ? – 2011-08-26 03:14:26
是的,我們確實 - 首選使用別的東西 – 2011-08-31 09:59:23
你們最終使用了什麼? – lsiu 2011-10-21 08:09:02