Domanda

Sono nuovo di BIRT e sto cercando di rendere la Relazione del Motore.Sto utilizzando i frammenti di codice fornito in http://www.eclipse.org/birt/phoenix/deploy/reportEngineAPI.php

Ma ho una strana eccezione:

java.lang.Eccezione assertionerror a org.eclipse.birt.core.quadro.Piattaforma.di avvio(Piattaforma.java:86)

e nulla nei file di log.

Forse ho perso qualcosa nella configurazione?Qualcuno potrebbe darmi un suggerimento su cosa posso provare a fare la corsa?

Ecco il codice che sto usando:

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( );
        }
    }
È stato utile?

Soluzione

Solo un pensiero, ma mi chiedo se l'uso di una barra quando si imposta il logger è la causa del problema?invece di

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

si dovrebbe usare

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

o

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

Infine, mi rendo conto che questo è solo un esempio di codice, ma sarà sicuramente desidera dividere la tua piattaforma codice di avvio fuori dalla vostra corsa e il rendering di attività.La piattaforma di avvio è molto costoso e dovrebbe essere fatto solo una volta per sessione.

Ho un paio di progetti Eclipse che sono l'installazione in un server Subversion che illustrano come utilizzare il Motore di Report API (REAPI) e il Motore per la Progettazione di API (DEAPI) che si possono trovare utili come il tuo codice diventa più complicato.

Per ottenere gli esempi, è necessario sia il Subclipse o Sovversiva, plugin e quindi sarà necessario collegarsi al seguente repository:

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

I progetti di cui avete bisogno sono:

birt_api_example
birt_runtime_lib
script.lib

Potrebbe essere necessario regolare alcune posizioni dei file nel BirtUtil classe, ma penso che la maggior parte delle posizioni dei file sono relativi percorso.Ulteriori informazioni su come utilizzare gli esempi di progetti sul mio blog http:/birtworld.blogspot.com.In particolare, questo articolo dovrebbe aiutare: Il test E il Debug di Report

Altri suggerimenti

Ho avuto lo stesso errore di un paio di mesi fa.Io non sono abbastanza sicuro di quello che realmente fisso, ma il mio codice simile al seguente:

        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);

Forse si può risolvere il tuo problema, confrontando questo frammento di codice e il proprio codice.btw il mio PATH_TO_ENGINE_HOME è "/WEB-INF/piattaforma".[edit]ho usato come "piattaforma"-cartella dal WebViewerExample di birt-runtime-2_1_1.bancomat birt-runtime-2_3_0 è reale.[/edit]

Se questo non aiuta, si prega di dare qualche dettaglio in più (ad esempio un frammento di codice).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top