IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

BIRT Discussion :

[2.2.1.1] Utiliser une classe Java pour DataSource, vieux problème? [Fait]


Sujet :

BIRT

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut [2.2.1.1] Utiliser une classe Java pour DataSource, vieux problème?
    bonjour,

    en bref : pourquoi ne parviens-je pas à appeler ma classe Java?

    Birt 2.2.1.1 tourne dans notre application J2EE/JSF, elle même déployé sur un JBOSS 4.3.0.GA.

    Les rapports sont parfaits... tant que la datasource au format SQL est écrit dans les rptdesign.

    Je souhaite maintenant être capable de fournir la datasource sous un format arraylist, list Java.

    j'ai bien vu de nombreux postes sur comment utiliser une datasource issue d'une classe Java. J'ai suivi plusieurs tutoriaux et j'ai toujours terminé par une exception me signalant que la méthode que j'appelle n'existe pas ou n'est pas public.

    Je pense que je ne parviens à atteindre le bon package.

    La platform Birt est embarqué dans notre .war.
    La classe générant la liste est elle dans un package de l'application.

    j'avais relevé particulièrement ce qui suit, qui me semblait aisé :
    http://www.developpez.net/forums/sho...d.php?t=173264

    mais j'ai la belle erreur suivante :

    13:35:45,787 ERROR [STDERR] 25 juin 2008 13:35:45 org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor handleJS
    ATTENTION: A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: TypeError: getInstance n'est pas une fonction, est un or
    g.mozilla.javascript.NativeJavaPackage (DataSet[ScriptedDataSet].__bm_OPEN#12)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN(). See next exception for more information.
    Error evaluating Javascript expression. Script engine error: TypeError: getInstance n'est pas une fonction, est un org.mozilla.javascript.NativeJavaPackage
    (DataSet[ScriptedDataSet].__bm_OPEN#12)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN()
    org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: TypeError: getInst
    ance n'est pas une fonction, est un org.mozilla.javascript.NativeJavaPackage (DataSet[ScriptedDataSet].__bm_OPEN#12)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN(). See next exception for more information.
    Error evaluating Javascript expression. Script engine error: TypeError: getInstance n'est pas une fonction, est un org.mozilla.javascript.NativeJavaPackage
    (DataSet[ScriptedDataSet].__bm_OPEN#12)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN()
    at org.eclipse.birt.data.engine.core.DataException.wrap(DataException.java:118)
    at org.eclipse.birt.data.engine.script.ScriptEvalUtil.evaluateJSAsExpr(ScriptEvalUtil.java:680)
    at org.eclipse.birt.data.engine.script.JSMethodRunner.runScript(JSMethodRunner.java:79)
    at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:71)
    at org.eclipse.birt.report.engine.script.internal.DataSetScriptExecutor.handleJS(DataSetScriptExecutor.java:159)
    at org.eclipse.birt.report.engine.script.internal.ScriptDataSetScriptExecutor.handleOpen(ScriptDataSetScriptExecutor.java:66)
    at org.eclipse.birt.data.engine.impl.ScriptDataSetRuntime.open(ScriptDataSetRuntime.java:79)
    at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor$CustomDataSet.open(PreparedScriptDSQuery.java:244)
    at org.eclipse.birt.data.engine.impl.PreparedScriptDSQuery$ScriptDSQueryExecutor.executeOdiQuery(PreparedScriptDSQuery.java:220)
    at org.eclipse.birt.data.engine.impl.QueryExecutor.execute(QueryExecutor.java:767)
    at org.eclipse.birt.data.engine.impl.ServiceForQueryResults.executeQuery(ServiceForQueryResults.java:217)
    at org.eclipse.birt.data.engine.impl.QueryResults.getResultIterator(QueryResults.java:157)
    at org.eclipse.birt.report.engine.data.dte.QueryResultSet.<init>(QueryResultSet.java:83)
    at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:155)
    at org.eclipse.birt.report.engine.data.dte.DataGenerationEngine.doExecuteQuery(DataGenerationEngine.java:111)
    at org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.execute(AbstractDataEngine.java:182)
    at org.eclipse.birt.report.engine.executor.ExecutionContext.executeQuery(ExecutionContext.java:1685)
    at org.eclipse.birt.report.engine.executor.QueryItemExecutor.executeQuery(QueryItemExecutor.java:76)
    at org.eclipse.birt.report.engine.executor.TableItemExecutor.execute(TableItemExecutor.java:61)
    at org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportItemExecutor.execute(WrappedReportItemExecutor.java:45)
    at org.eclipse.birt.report.engine.internal.executor.emitter.ReportItemEmitterExecutor.execute(ReportItemEmitterExecutor.java:45)
    at org.eclipse.birt.report.engine.internal.executor.dup.SuppressDuplicateItemExecutor.execute(SuppressDuplicateItemExecutor.java:42)
    at org.eclipse.birt.report.engine.layout.html.HTMLBlockStackingLM.layoutNodes(HTMLBlockStackingLM.java:63)
    at org.eclipse.birt.report.engine.layout.html.HTMLPageLM.layout(HTMLPageLM.java:85)
    at org.eclipse.birt.report.engine.layout.html.HTMLReportLayoutEngine.layout(HTMLReportLayoutEngine.java:106)
    at org.eclipse.birt.report.engine.presentation.ReportDocumentBuilder.build(ReportDocumentBuilder.java:189)
    at org.eclipse.birt.report.engine.api.impl.RunTask.doRun(RunTask.java:224)
    at org.eclipse.birt.report.engine.api.impl.RunTask.run(RunTask.java:89)

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Bonjour,

    C'est un peu trop vieux.

    Regarde sur la FAQ plutôt : http://www.developpez.net/forums/sho...6&postcount=15

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    bonjour "BIM"

    certes BIM, mais quid de comment s'assurer avec cette configuration d'appeler une méthode d'une classe Java qui se trouve dans un pacakge autre que celui de BIRT?

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Alors l'idéal serait de faire soit dans le open du DataSet soit dans le initialize de l'état :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    importPackage(Packages.ceci.est.mon.chemin.de.package);
    Pour prendre un exemple simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    importPackage(Packages.java.util);

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    et bien là, il me renvoit un message incohérent.

    je dis parce que la dite classe a un constructeur sans argument :

    Classe :

    /**
    *
    * @author acouder
    */

    public class UPFunctionLists extends ArrayList {
    private static UPFunctionLists m_Instance = null;

    private UPFunctionLists() {
    super();
    add(new String[]{"NOM1","Christophe"});
    add(new String[]{"NOM2","Nicolas"});
    add(new String[]{"NOM3","Myriam"});
    add(new String[]{"NOM4","Anne-Lyse"});
    add(new String[]{"NOM5","Jérôme"});
    add(new String[]{"NOM6","Lilian"});
    add(new String[]{"NOM7","Virginie"});
    }

    public static UPFunctionLists getInstance() {
    if (m_Instance == null)
    m_Instance = new UPFunctionLists();
    return m_Instance;
    }
    }
    Message d'erreur :
    ATTENTION: A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: Le constructeur Java de "com.xfp.gui.web.report.service.
    util.scripteddatasource.UPFunctionLists" avec les arguments "" est introuvable (DataSet[ScriptedDataSet].__bm_OPEN#31)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN(). See next exception for more information.
    Error evaluating Javascript expression. Script engine error: Le constructeur Java de "com.xfp.gui.web.report.service.util.scripteddatasource.UPFunctionList
    s" avec les arguments "" est introuvable (DataSet[ScriptedDataSet].__bm_OPEN#31)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN()
    org.eclipse.birt.data.engine.core.DataException: A BIRT exception occurred: Error evaluating Javascript expression. Script engine error: Le constructeur Ja
    va de "com.xfp.gui.web.report.service.util.scripteddatasource.UPFunctionLists" avec les arguments "" est introuvable (DataSet[ScriptedDataSet].__bm_OPEN#31
    )
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN(). See next exception for more information.
    Error evaluating Javascript expression. Script engine error: Le constructeur Java de "com.xfp.gui.web.report.service.util.scripteddatasource.UPFunctionList
    s" avec les arguments "" est introuvable (DataSet[ScriptedDataSet].__bm_OPEN#31)
    Script source: DataSet[ScriptedDataSet].__bm_OPEN, line: 1, text:
    __bm_OPEN()

  6. #6
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Le message d'erreur n'est pas incohérent, tu ne le comprends pas, c'est différent.

    Que contient ta méthode OPEN stp ? (En gardant le même nombre de lignes)

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    elle contient ceci :

    importPackage(Packages.com.xfp.gui.web.report.service.util.scripteddatasource);

    scriptedDataSet = new UPFunctionLists();

    nbLignes = 0;
    if (scriptedDataSet != null)
    nbLignes = scriptedDataSet.size();
    ligneEnCours = 0;

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    Citation Envoyé par BiM Voir le message
    Le message d'erreur n'est pas incohérent,
    disons que si je lis :
    UPFunctionLists" avec les arguments "" est introuvable
    et que ma classe contient :
    private UPFunctionLists() {
    super();
    add(new String[]{"NOM1","Christophe"});
    add(new String[]{"NOM2","Nicolas"});
    add(new String[]{"NOM3","Myriam"});
    add(new String[]{"NOM4","Anne-Lyse"});
    add(new String[]{"NOM5","Jérôme"});
    add(new String[]{"NOM6","Lilian"});
    add(new String[]{"NOM7","Virginie"});
    }
    ben je trouve cela incohérent dans le sens qu'il y a bien un constructeur vide d'argument

  9. #9
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    private ton constructeur.

    Met le public, ca fonctionnera mieux !

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 36
    Points : 17
    Points
    17
    Par défaut
    bon bon bon

    ça réagit mieux déjà

    le reste des bugs est a moi

    merci BIM !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser une classe java externe
    Par romone1 dans le forum W4 Express
    Réponses: 4
    Dernier message: 27/11/2008, 14h36
  2. Réponses: 1
    Dernier message: 26/08/2008, 12h27
  3. Comment utiliser une classe Java dans une appli PB ?
    Par bobychezA56 dans le forum Powerbuilder
    Réponses: 0
    Dernier message: 09/04/2008, 18h07
  4. Réponses: 0
    Dernier message: 31/03/2008, 11h36
  5. [JSP] Utiliser une classe Java dans du Javascript
    Par BiM dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/07/2007, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo