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

XSL/XSLT/XPATH XML Discussion :

[Débutant][XSLT] - Chemin complet pour XALAN via JAVA


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 12
    Par défaut [Débutant][XSLT] - Chemin complet pour XALAN via JAVA
    Bonjour,

    Depuis quelques temps, je m'intéresse à XML au SVG ainsi qu'à XSL...
    Cela m'a poussé à me lancer dans l'étude de cette galerie d'images en XML :

    Quelques heures passées autour du sujet et déjà les premiers essais (à l'aide des fichiers d'exemples fournis dans l'énoncé du tutoriel).

    Dans l'exemple donné par Dominique Guebey, le processeur XSLT utilisé est xalan.
    Xalan (ainsi que son compère saxon) sont mentionnés notamment dans le fichier 'galerie.xsl' à travers les lignes suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    xmlns:xalan="org.apache.xalan.xslt.extensions.Redirect"
     
            xmlns:saxon="http://icl.com/saxon" 
     
            extension-element-prefixes="saxon"
     
    	exclude-result-prefixes="dg77 rdf rdfs s0 s1 s2 xalan saxon"

    Grâce à la feuille de style 'galerie.xsl', un exécutable 'galerie.sh' permet de transformer le fichier 'galerie.xml' en un fichier de sortie au format .html
    Le chemin complet de xalan (via java) y est spécifié :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath $CLASSPATH:/opt/SUNWappserver/lib/endorsed/xalan.jar.pack org.apache.xalan.xslt.Process -in $1 -xsl galerie.xsl -out $2 -param nomfic $2 -param nomxml $1 -param dateheure $dateheure -param processor xalan
    Avec ma distribution Ubuntu Linux, la commande suivante me renvoit ce message d'erreur :

    hubert@ubuntu:/usr/local/galerie$ ./galerie.sh
    Exception in thread "main" java.lang.NoClassDefFoundError: org.apache.xalan.xslt.Process
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    Caused by: java.lang.ClassNotFoundException: org.apache.xalan.xslt.Process not found in gnu.gcj.runtime.SystemClassLoader{urls=[file:./], parent=gnu.gcj.runtime.ExtensionClassLoader{urls=[], parent=null}}
    at java.net.URLClassLoader.findClass(libgcj.so.70)
    at gnu.gcj.runtime.SystemClassLoader.findClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at java.lang.ClassLoader.loadClass(libgcj.so.70)
    at gnu.java.lang.MainThread.run(libgcj.so.70)
    Chez moi, Java n'est pas installé dans /opt :

    hubert@ubuntu:/usr/local/galerie$ whereis java
    java: /usr/bin/java /etc/java /usr/X11R6/bin/java /usr/bin/X11/java /usr/share/java /usr/share/man/man1/java.1.gz
    Et mon xalan est installé ici :

    hubert@ubuntu:/usr/local/galerie$ whereis xalan
    xalan: /usr/bin/xalan /usr/X11R6/bin/xalan /usr/bin/X11/xalan /usr/share/man/man1/xalan.1.gz
    Les questions que je me pose sont :

    1) Quelle ligne mettre dans 'galerie.sh' à la place de la ligne java -classpath citée plus haut ? (sachant que chez moi java et xalan n'ont pas l'air si associés que ça).
    2) Au lieu de xalan ou saxon, puis-je utiliser le processeur xsltproc, et dans ce cas, comment le spécifier dans 'galerie.xsl' ?

    Hum!... J'espère ne pas être trop confus dans la formulation de ma demande...
    Merci d'avance pour votre aide

    Hubert

  2. #2
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    Bon en faite là tu n'as pas un problème xsl ou autre xml, mais un problème java.
    Comme tu l'as identifiés tu as un soucis de classpath pour java.
    Il te manque la classe org.apache.xalan.xslt.Process qui se trouve généralement dans un fichier du type xalan-2.7.0.jar.
    Donc cherche sur ta machine ou se trouve les librairies java de xalan puis tu peux les ajouter dans le classpath:
    * soit dans ton environnement
    * soit dans la ligne de commande java -classpath path1:path2:... org.apache.xalan.xslt.Process

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 12
    Par défaut
    Merci beaucoup fraoustin pour ta réponse, j'ai passé la journée à chercher ces fameuses librairies java de xalan... sans succès.

    Le logiciel Synaptic me dit que xalan2.jar est dans /usr/share/java/ mais quand j'y vais, il n'y figure pas.
    Pas de trace non plus de la classe org.apache.xalan.xslt.Process (j'ai cherché partout).
    Si ça se trouve, le nom de la classe a changé et/ou les librairies sont dans un endroit exotique...

    Mais bon, je vais voir un peu sur les forums ubuntu et debian ce qu'il s'en dit.
    En recours, je me rabattrai sur saxon ou xsltproc.

    En tout cas, félicitations pour ce forum !


    À bientôt

  4. #4
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    A mon avis
    tu télécharges xalan sur le site http://www.apache.org/dyn/closer.cgi/xml/xalan-j
    puis tu décompresses et place les fichier lib/*.jar dans ton classpath

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 12
    Par défaut
    Ça y est j'ai décompressé xalan-j_2_7_0-src-2jars.tar.gz
    Dans son réperoire /lib il y a BCEL.jar regexp.jar runtime.jar xercesImpl.jar et xml-apis.jar

    Si j'ai bien compris, je dois les ajouter dans le classpath de Java ?

    Chez moi, dans /usr/lib/jvm/java-6-sun/jre/lib il y a 9 fichiers .jar

    Les .jar de xalan doivent-ils être simplement copiés dans ce dossier ?

    Quelque chose me dit que ça serait trop facile

  6. #6
    Membre émérite
    Profil pro
    Responsable Dev
    Inscrit en
    Décembre 2003
    Messages
    788
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Responsable Dev

    Informations forums :
    Inscription : Décembre 2003
    Messages : 788
    Par défaut
    en faite moi je modifierais mon CLASSPATH de mon environnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    JAVA_CMD = "/op/java/bin/java "
    LOCALCLASSPATH=$CLASSPATH:${XALAN_HOME}/lib/serializer-2.7.0.jar:${XALAN_HOME}/lib/xalan-2.7.0.jar:$LOCALCLASSPATH
    xalan_exec_command="exec \"$JAVACMD\" -classpath \"$LOCALCLASSPATH\" org.apache.xalan.xslt.Process $args"

Discussions similaires

  1. eviter de mettre le chemin complet pour un properties?
    Par barthelus76 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 27/09/2007, 12h21
  2. Réponses: 1
    Dernier message: 10/10/2006, 14h19
  3. Chemin Complet du .exe via PID
    Par Eric Boisvert dans le forum Delphi
    Réponses: 6
    Dernier message: 15/09/2006, 15h16
  4. Réponses: 3
    Dernier message: 31/05/2006, 11h43
  5. Réponses: 2
    Dernier message: 08/09/2005, 12h18

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