2012-01-06 10 views
0

以前はBIRT Engineをサーブレット内で使用するように設定していましたが、移行ガイドにはBIRT jarをクラスパスに追加するだけでBIRT jarはWEB-INF \ libに追加されました。BIRT 2.5.2から3.7.1へのアップグレード

今すぐアプリを実行すると、IReportEngineFactoryはnullを返します。どんな助けもありがとうございます。次の行を追加し

public static synchronized IReportEngine getBirtEngine(ServletContext sc) throws Exception { 

    EngineConfig config = new EngineConfig(); 
    config.setBIRTHome(""); 


    config.setLogConfig("C:/Temp", Level.FINEST); 
    config.setLogFile("birtLog.log"); 
    realPath = sc.getRealPath("/reports"); 
    log.info("Server Info: " + sc.getServerInfo()); 
    log.info(" Servlet Context Name: " + sc.getServletContextName()); 
    log.info("Real Path: " + realPath); 
    log.info("#####Creating new Birt Engine#####"); 
    //log.info("Birt Home is: " + config.getBIRTHome()); 
    IPlatformContext context = new PlatformServletContext(sc); 
    config.setPlatformContext(context); 
    try { 
     Platform.startup(config); 
     //log.info("Birt Home is: " + config.getPlatformContext().toString()); 
     IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject 
       (IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); 
     birtEngine = factory.createReportEngine(config); 
    } 
    catch (Exception e) { 
     throw e; 
    } 

    return birtEngine; 
} 
+0

私は全く同じ問題に直面しています。 BIRT 2.5.2からBIRT 3.7.1にアップグレード中。あなたはこの問題を解決しましたか? Thanx in advance、Nele – Nele

答えて

0

は私のカスタムBirtEngine.java構成で問題を解決:私はあなたが家にBIRTを設定してはいけません読んで、ネットとプラットフォームのコンテキストで多くの記事で

IPlatformContext context = new PlatformServletContext(sc); 
config.getAppContext().put(EngineConstants.WEBAPP_CLASSPATH_KEY, ""); 
+0

更新のおかげで、私たちはまだ問題を解決していませんでした。私はあなたの解決策を試みます。 – kallen

0

もう。したがって、コードは次のようになります。

public static synchronized IReportEngine getBirtEngine() throws Exception { 

    EngineConfig config = new EngineConfig(); 
    config.setLogConfig("C:/Temp", Level.FINEST); 
    config.setLogFile("birtLog.log"); 

    try { 
     Platform.startup(config); 
     IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject 
       (IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY); 
     birtEngine = factory.createReportEngine(config); 
    } 
    catch (Exception e) { 
     throw e; 
    } 

    return birtEngine; 
} 
関連する問題