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

Format d'échange (XML, JSON...) Java Discussion :

[FOP] Erreur lors de l'appel new Driver();


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [FOP] Erreur lors de l'appel new Driver();
    Bonjour à tous,

    Je cherche à créer un fichier PDF à l'aide de FOP et j'obtiens le message suivant lorsque l'appli essaye d'executer la ligne Driver dr = new Driver();

    java.lang.NullPointerException
    at org.apache.fop.apps.Service.providers(Driver.java:597)
    at org.apache.fop.apps.Driver.setupDefaultMappings(Driver.java:319)
    at org.apache.fop.apps.Driver.<init>(Driver.java:222)
    at org.apache.fop.apps.Driver.<init>(Driver.java:226)
    at src.ExampleFO2PDF.convertFO2PDF(ExampleFO2PDF.java:34)
    at src.ExampleFO2PDF.main(ExampleFO2PDF.java:84)
    le code source que j'utilise est celui fournit en standard dans le package fop version 0.20.5. j'utilise Eclipse 3.2 associé à webtools 1.5 et la JDK 1.5.0.08.
    J'ai essayé avec d'autre version d'eclipse et de la jdk mais toujours le même souci.

    quelqu'un à t'il deja eu cette erreur, et si oui, comment l'avez vous résolu ?

    source :
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    package embedding;
    
    //Java
    import java.io.File;
    import java.io.IOException;
    import java.io.OutputStream;
    
    //JAXP
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.TransformerException;
    import javax.xml.transform.Source;
    import javax.xml.transform.Result;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.transform.sax.SAXResult;
    
    //Avalon
    import org.apache.avalon.framework.ExceptionUtil;
    import org.apache.avalon.framework.logger.ConsoleLogger;
    import org.apache.avalon.framework.logger.Logger;
    
    //FOP
    import org.apache.fop.apps.Driver;
    import org.apache.fop.apps.FOPException;
    import org.apache.fop.messaging.MessageHandler;
    
    /**
     * This class demonstrates the conversion of an XML file to PDF using 
     * JAXP (XSLT) and FOP (XSL:FO).
     */
    public class ExampleXML2PDF {
    
        public void convertXML2PDF(File xml, File xslt, File pdf) 
                    throws IOException, FOPException, TransformerException {
            //Construct driver
            Driver driver = new Driver(); // ERREUR !!!!
            
            //Setup logger
            Logger logger = new ConsoleLogger(ConsoleLogger.LEVEL_INFO);
            driver.setLogger(logger);
            MessageHandler.setScreenLogger(logger);
    
            //Setup Renderer (output format)        
            driver.setRenderer(Driver.RENDER_PDF);
            
            //Setup output
            OutputStream out = new java.io.FileOutputStream(pdf);
            try {
                driver.setOutputStream(out);
    
                //Setup XSLT
                TransformerFactory factory = TransformerFactory.newInstance();
                Transformer transformer = factory.newTransformer(new StreamSource(xslt));
            
                //Setup input for XSLT transformation
                Source src = new StreamSource(xml);
            
                //Resulting SAX events (the generated FO) must be piped through to FOP
                Result res = new SAXResult(driver.getContentHandler());
    
                //Start XSLT transformation and FOP processing
                transformer.transform(src, res);
            } finally {
                out.close();
            }
        }
    
    
        public static void main(String[] args) {
            try {
                System.out.println("FOP ExampleXML2PDF\n");
                System.out.println("Preparing...");
    
                //Setup directories
                File baseDir = new File(".");
                File outDir = new File(baseDir, "out");
                outDir.mkdirs();
    
                //Setup input and output files            
                File xmlfile = new File(baseDir, "xml/xml/projectteam.xml");
                File xsltfile = new File(baseDir, "xml/xslt/projectteam2FO.xsl");
                File pdffile = new File(outDir, "ResultXML2PDF.pdf");
    
                System.out.println("Input: XML (" + xmlfile + ")");
                System.out.println("Stylesheet: " + xsltfile);
                System.out.println("Output: PDF (" + pdffile + ")");
                System.out.println();
                System.out.println("Transforming...");
                
                ExampleXML2PDF app = new ExampleXML2PDF();
                app.convertXML2PDF(xmlfile, xsltfile, pdffile);
                
                System.out.println("Success!");
            } catch (Exception e) {
                System.err.println(ExceptionUtil.printStackTrace(e));
                System.exit(-1);
            }
        }
    }

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Je viens de tester et j'ai pas le pb, t'es sur que t'as bien les .jar dans le classpath au moment de l'exec?

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    Bonjour j'ai un probleme similaire...
    voici mon code:
    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
     
        public static void transformerPDF(String xml, String xsl, String pdf) {
           // création du résultat (pdf)
           Driver driver = new Driver();
           driver.setRenderer(Driver.RENDER_PDF);
            try {
                driver.setOutputStream(new java.io.FileOutputStream(pdf));
            } 
            catch (FileNotFoundException e) {
                 System.err.println("TransformerException: " + e.getMessage());
                 e.printStackTrace();
            }
            Result resultat = new SAXResult(driver.getContentHandler());
           // récupération de la source xml
           Source source = new StreamSource(xml);
           // création du transformer en fonction du xsl
           Source style = new StreamSource(xsl);
           TransformerFactory transformerFactory = TransformerFactory.newInstance();
           Transformer transformer;
           // transformation
            try {
                transformer = transformerFactory.newTransformer(style);
                transformer.transform(source, resultat);
            } 
            catch (TransformerConfigurationException e) {
                 System.err.println("TransformerException: " + e.getMessage());
                 e.printStackTrace();
            } catch (TransformerException e) {
                 System.err.println("TransformerException: " + e.getMessage());
                 e.printStackTrace();
            }
     
        }
    et voici mon erreur:
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/avalon/framework/logger/Logger
    at Pack_Exports.TransformHTML.transformerPDF(TransformHTML.java:94)

    j'ai pourtant les liens de .jar dans les librairies....

  4. #4
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 68
    Points : 50
    Points
    50
    Par défaut
    mmmh je post trop vite, je n'ai pas avalon dans les librairies... --> il faut 'avalon-framework'

    [...]

    une nouvelle erreur est apparue:
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/batik/util/XMLResourceDescriptor

    --> il faut 'apache batik'.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Ben c'est normal, il te faut la lib batik.jar.
    T'auras sans doute besoin aussi de xalan xerces et xml-apis.jar
    On les trouve facilement sur le site d'apache &co; hum là par exemple:
    http://archive.apache.org/dist/xml/

Discussions similaires

  1. Erreur lors de l'appel d'une page executée avec AJAX
    Par jt-tronix dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2006, 18h56
  2. Erreur lors de l'appel de StringVar()
    Par vinzzzz dans le forum Tkinter
    Réponses: 2
    Dernier message: 29/10/2006, 16h13
  3. Erreur lors de l'appel d'une DLL créée avec Visual
    Par WELCOMSMAIL dans le forum C++Builder
    Réponses: 6
    Dernier message: 06/09/2006, 16h53
  4. Erreur lors de l'appel d'un page ASP
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 27/08/2004, 16h17

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