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

Web Perl Discussion :

executer FOP depuis Perl


Sujet :

Web Perl

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Points : 66
    Points
    66
    Par défaut executer FOP depuis Perl
    Bonjour,

    J'utilise le logiciel FOP pour créer des fichiers pdf au départ de fichiers xml et xsl au moyen de scripts Perl lancé depuis la console, exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #!/usr/bin/perl
    ...
     
    # commande qui lance fop et transforme le xml en pdf
    `c:/fop/fop-1.0/fop.bat -xml $cheminXML -xsl $cheminXSL -pdf $cheminPDF`;
    J'ai un serveur local Wamp2.0 sur lequel j'exécute des fichiers Perl sans problème (génération de pages web dynamiques avec le module CGI) SAUF que la commande qui lance FOP depuis ces scripts Perl n'a aucun effet. Mon fichier pdf n'est pas créé et je n'ai aucun message d'erreur affiché à l'écran.
    Voici le error log d'Apache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     java.lang.NoClassDefFoundError: org/apache/fop/cli/Main\r
     Caused by: java.lang.ClassNotFoundException: org.apache.fop.cli.Main\r
     \tat java.net.URLClassLoader$1.run(Unknown Source)\r
     \tat java.security.AccessController.doPrivileged(Native Method)\r
     \tat java.net.URLClassLoader.findClass(Unknown Source)\r
     \tat java.lang.ClassLoader.loadClass(Unknown Source)\r
     \tat sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)\r
     \tat java.lang.ClassLoader.loadClass(Unknown Source)\r
     Could not find the main class: org.apache.fop.cli.Main.  Program will exit.\r
     Exception in thread "main"
    Je ne vois pas d'où vient ce problème, alors que j'utilise la même commande ?

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    peux tu essayer ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $commande = "C:/fop/fop-1.0/fop.bat -xml $cheminXML -xsl $cheminXSL -pdf $cheminPDF";
    print "Commande : $commande\n";
    print `$commande`;
    print "===\n\n";
    system($commande) == 0  or die "FAILED : $commande : $?\n";

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Points : 66
    Points
    66
    Par défaut
    Voici le message avec la proposition de commande de djirbril
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Commande : C:/fop/fop-1.0/fop.bat -xml C:/wamp/www/tests/etiquettes.xml -xsl C:/wamp/www/tests/etiquettes.xsl -pdf C:/wamp/www/tests/etiquettes.pdf ===
    Le fichier pdf n'est toujours pas créé.

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Could not find the main class: org.apache.fop.cli.Main.  Program will exit.
    C'est pas du coté de FOP qu'il faudrait regarder par hasard ?
    Je serais tenté de dire que c'est un problème de contexte lorsque que tu appelles ton .bat, puisque le programme n'est pas appelé de la même façon même si la ligne de commande est identique.
    Bon épluchage de variables d'environnements

    @+
    Mr6

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Points : 66
    Points
    66
    Par défaut
    Je vais éplucher tout ça...
    Merci pour les infos.

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 84
    Points : 66
    Points
    66
    Par défaut
    Je remonte ce fil car j'ai trouvé une solution... si vous êtes dans le même cas que moi passez à Linux !
    Mon application est maintenant développée sous Ubuntu donc je peux lancer FOP depuis des CGI et mes fichiers XML sont bien convertis en PDF. Par contre, toujours pas de solution avec WAMP, j'ai eu beau éplucher les variables d'environnement, je n'ai décelé aucune différence entre le même script lancé en console ou en CGI.

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

Discussions similaires

  1. executer commande unix depuis perl
    Par painouch21 dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 08/02/2008, 09h11
  2. Executer commande shell depuis perl
    Par Matmal11 dans le forum Langage
    Réponses: 2
    Dernier message: 12/06/2007, 11h35
  3. comment executer un script perl svp?
    Par nico72 dans le forum Langage
    Réponses: 8
    Dernier message: 13/07/2005, 10h51
  4. executer dos depuis requete sql
    Par DaxTaz dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/11/2004, 15h15
  5. Réponses: 4
    Dernier message: 16/07/2004, 10h16

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