Frage

Ich bin neu in BIRT und ich versuche, den Report Engine laufen zu lassen. Ich verwende den Code-Schnipsel zur Verfügung gestellt in http://www.eclipse.org /birt/phoenix/deploy/reportEngineAPI.php

Aber ich habe eine seltsame Ausnahme:

  

java.lang.AssertionError       bei org.eclipse.birt.core.framework.Platform.startup (Platform.java:86)

und nichts in der Protokolldatei.

Vielleicht habe ich etwas in der Konfiguration? Könnte mir jemand über einen Tip geben, was ich kann versuchen, es zu machen laufen?

Hier ist der Code verwende ich:

public static void executeReport()
    {

        IReportEngine engine=null;
        EngineConfig config = null;

        try{
            config = new EngineConfig( );           
            config.setBIRTHome("D:\\birt-runtime-2_3_0\\ReportEngine");
            config.setLogConfig("d:/temp", Level.FINEST);
            Platform.startup( config );
            IReportEngineFactory factory = (IReportEngineFactory) Platform
            .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
            engine = factory.createReportEngine( config );      

            IReportRunnable design = null;
            //Open the report design
            design = engine.openReportDesign("D:\\birt-runtime-2_3_0\\ReportEngine\\samples\\hello_world.rptdesign"); 
            IRunAndRenderTask task = engine.createRunAndRenderTask(design);         

            HTMLRenderOption options = new HTMLRenderOption();      
            options.setOutputFileName("output/resample/Parmdisp.html");
            options.setOutputFormat("html");

            task.setRenderOption(options);
            task.run();
            task.close();
            engine.destroy();
        }catch( Exception ex){
            ex.printStackTrace();
        }       
        finally
        {
            Platform.shutdown( );
        }
    }
War es hilfreich?

Lösung

Nur ein Gedanke, aber ich frage mich, ob die Nutzung von einem Schrägstrich bei der Einstellung der Logger ein Problem verursacht? anstelle von

config.setLogConfig("d:/temp", Level.FINEST);

Sie verwenden sollten,

 config.setLogConfig("/temp", Level.FINEST);

oder

  config.setLogConfig("d:\\temp", Level.FINEST);

Schließlich stelle ich fest, dass dies nur einige Beispiel-Code, aber Sie wollen auf jeden Fall Ihre Plattform Startcode aus dem Lauf spalten und Aufgabe zu machen. Die Plattform Inbetriebnahme ist sehr teuer und sollte nur einmal pro Sitzung durchgeführt werden.

Ich habe ein paar von Eclipse-Projekten, die Einrichtung in einem Subversion-Server sind, die zeigen, wie die Report Engine API verwenden (REAPI) und die Design-Engine API (DEAPI), die Sie nützlich finden können, wie Sie den Code komplizierter wird.

Um die Beispiele erhalten Sie entweder die Subclipse oder die Subversive Plugins benötigt, und dann müssen Sie das folgende Repository verbinden:

http://longlake.minnovent.com/repos/birt_example

Die Projekte, die Sie benötigen, sind:

birt_api_example
birt_runtime_lib
script.lib

Sie müssen möglicherweise einige der Dateispeicherorte in der BirtUtil Klasse anzupassen, aber ich denke, dass die meisten Dateipfade relativ Weg sind. Es gibt mehr Informationen darüber, wie auf meinem Blog die Beispiele Projekte zu verwenden: http: /birtworld.blogspot.com. Insbesondere sollte dieser Artikel helfen: Testen und Debuggen von Report

Andere Tipps

hatte ich den gleichen Fehler vor ein paar Monaten. Ich bin mir nicht ganz sicher, was es tatsächlich behoben, aber mein Code sieht wie folgt aus:

        IDesignEngine engine = null;
    DesignConfig dConfig = new DesignConfig();
    EngineConfig config = new EngineConfig();
    IDesignEngineFactory factory = null;
    config.setLogConfig(LOG_DIRECTORY, Level.FINE);
    HttpServletRequest servletRequest = (HttpServletRequest) FacesContext.getCurrentInstance()
     .getExternalContext().getRequest();

    String u = servletRequest.getSession().getServletContext().getRealPath("/");
    File f = new File(u + PATH_TO_ENGINE_HOME);

    log.debug("setting engine home to:"+f.getAbsolutePath());
    config.setEngineHome(f.getAbsolutePath());

    Platform.startup(config);
    factory = (IDesignEngineFactory) Platform.createFactoryObject(IDesignEngineFactory.EXTENSION_DESIGN_ENGINE_FACTORY);
    engine = factory.createDesignEngine(dConfig);
    SessionHandle session = engine.newSessionHandle(null);

    this.design = session.openDesign(u + PATH_TO_MAIN_DESIGN);

Vielleicht können Sie Ihr Problem lösen, indem Sie den Code-Schnipsel und Ihren eigenen Code zu vergleichen. btw mein PATH_TO_ENGINE_HOME ist "/ WEB-INF / Plattform". [Bearbeiten] habe ich die komplette „Plattform“ -Ordner aus dem WebViewerExample der birt-Runtime-2_1_1. atm birt-Runtime-2_3_0 ist tatsächlich. [/ edit]

Wenn dies nicht hilft, bitte noch ein paar Details geben (zum Beispiel eines Code-Snippet).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top