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

  1. #1
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut [BIRT4.3.1 engine] Comment ne puis-je pas utiliser ByteArrayInputStream comme entrée XML pour mon rapport ?
    Hi all,

    regarder ma question dans le titre du poste.

    Si je fais cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    InputStream xmlStream = new FileInputStream("E:\\TestReportOut.xml"); 
    contextMap.put("org.eclipse.datatools.enablement.oda.xml.inputStream", xmlStream); 
    contextMap.put("org.eclipse.datatools.enablement.oda.xml.closeInputStream", new Boolean(true));
    mon rapport résultat est réussie

    Mais si j’injecte deux fichier XML comme suite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    InputStream xmlStream = new FileInputStream("E:\\DataReportOut.xml"); 
    contextMap.put("org.eclipse.datatools.enablement.oda.xml.inputStream", xmlStream1); 
    InputStream xmlStream = new ByteArrayInputStream(xmlDataSource); 
    contextMap.put("org.eclipse.datatools.enablement.oda.xml.inputStream", xmlStream2); 
     
    contextMap.put("org.eclipse.datatools.enablement.oda.xml.closeInputStream", new Boolean(true));

    il me semble qu'il je doit utilisé (même si c'est une map avec un Key) "org.eclipse.datatools.enablement.oda.xml.inputStream" pour utilisation de l'API en Reflexivité

    voilà Mon message d'erreur:
    nov. 28, 2013 3:13:42 PM org.eclipse.datatools.enablement.oda.xml.util.SaxParser run
    WARNING: Exceptions occur during xml parsing

    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.datatools.enablement.oda.xml.util.SaxParser.parse(SaxParser.java:168)
    at org.eclipse.datatools.enablement.oda.xml.util.SaxParser.run(SaxParser.java:119)
    at java.lang.Thread.run(Thread.java:722)
    Caused by: org.xml.sax.SAXParseException; Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    ... 7 more
    Comment je peu solutionné ou contourné ce type de problème ?

  2. #2
    Membre confirmé
    Avatar de geforce
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 055
    Points : 559
    Points
    559
    Par défaut
    Ce n'est pas résolu ... Dans le cas du rapport qui contient deux sources de données xml ... Les deux sources de données seront tenus sur le même fluxEntrée! C'est dommage ... Une idée pour résoudre ce problème, s'il vous plaît ?

    Voilà le code mise a jour que j'utilise:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
        public void excecuteReport() throws FileNotFoundException {
            //Open the report design
            try {
                IReportRunnable design = engine.openReportDesign(new File(PHATH_REPORT_DESIGN).getAbsolutePath());
                //Create task to run the report - use the task to execute the report and save to disk.
                IRunTask task = engine.createRunTask(design);
                //Set parent classloader for engine
                task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, SimpleExecuteReport_rptdocument.class.getClassLoader());
     
                // Paramétrage de la tâche en spécifiant la source données XML
                InputStream dataXmlOneInputStream = build_data_xml_webServ(URL_WEBSERVICE_DTATXML);
                task.getAppContext().put("org.eclipse.datatools.enablement.oda.xml.inputStream", dataXmlOneInputStream); //org.eclipse.datatools.enablement.oda.xml.inputStream
     
                System.out.println("MAp1 :" + task.getAppContext() + "\n");
     
                InputStream dataXmlTwoInputStream = build_data_xml_webServ(URL_WEBSERVICE_CONFIGXML);
                task.getAppContext().put("org.eclipse.datatools.enablement.oda.xml.inputStream", dataXmlTwoInputStream);
                //task.getAppContext().put("org.eclipse.datatools.enablement.oda.xml.closeInputStream", Boolean.TRUE);
     
                System.out.println("MAp2 :" + task.getAppContext() + "\n");
     
     
                //run the report and destroy the engine
                task.run(new File(PHATH_REPORT_DOCUMENT).getAbsolutePath());
                task.close();
     
            } catch (EngineException e1) {
                System.out.println("[Lecture de l'état BIRT]........FAILED : " + e1.getMessage());
            }
            System.out.println("[Lecture de l'état BIRT]................OK");
            engine.destroy();
            Platform.shutdown();
            System.out.println("Fini...");
        }
    Vola ce que m'affiche la MAP (systeme.out.println que j'utilise dans la méthode ci-dessus pour un petite débogage)
    MAp1 :{org.eclipse.datatools.enablement.oda.xml.inputStream=java.io.ByteArrayInputStream@45ca53, PARENT_CLASSLOADER=sun.misc.Launcher$AppClassLoader@8ed465}

    MAp2 :{org.eclipse.datatools.enablement.oda.xml.inputStream=java.io.ByteArrayInputStream@1e61363, PARENT_CLASSLOADER=sun.misc.Launcher$AppClassLoader@8ed465}
    en voix clairement que l'objet avec la clés "org.eclipse.datatools.enablement.oda.xml.inputStream=" a été écrasé... alors que moi je veux les conservé tout les deux avec la même clés !! (sinon il fait pas un bon job pour intégré les deux Data_XML dans le document finale qu'il généré)

    Merci!

    NB: Message d'erreur reste le même (qui ce déclenche a la méthode task.run)
    MAp1 :{org.eclipse.datatools.enablement.oda.xml.inputStream=java.io.ByteArrayInputStream@45ca53, PARENT_CLASSLOADER=sun.misc.Launcher$AppClassLoader@8ed465}

    MAp2 :{org.eclipse.datatools.enablement.oda.xml.inputStream=java.io.ByteArrayInputStream@1e61363, PARENT_CLASSLOADER=sun.misc.Launcher$AppClassLoader@8ed465}

    déc. 02, 2013 3:29:45 PM org.eclipse.datatools.enablement.oda.xml.util.SaxParser run
    WARNING: Exceptions occur during xml parsing
    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.eclipse.datatools.enablement.oda.xml.util.SaxParser.parse(SaxParser.java:168)
    at org.eclipse.datatools.enablement.oda.xml.util.SaxParser.run(SaxParser.java:119)
    at java.lang.Thread.run(Thread.java:722)
    Caused by: org.xml.sax.SAXParseException; Premature end of file.
    at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
    at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    ... 7 more

    [Lecture de l'état BIRT]................OK
    Fini...
    ------------------------------------------------------------------------
    BUILD SUCCESS
    ------------------------------------------------------------------------
    Total time: 11.507s
    Finished at: Mon Dec 02 15:29:46 EST 2013
    Final Memory: 4M/15M
    ------------------------------------------------------------------------

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2009, 05h40
  2. Réponses: 6
    Dernier message: 11/02/2009, 13h38
  3. Réponses: 4
    Dernier message: 07/10/2008, 17h05
  4. [MySQL] comment stocker puis recuper les images dans une base de donnée
    Par essono dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 22/11/2006, 23h07
  5. Réponses: 1
    Dernier message: 22/11/2006, 22h49

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