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 :

Problème avec SAXBuilder


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Par défaut Problème avec SAXBuilder
    Bonjour,

    Mon problème est une peu particulier dans la mesure où il concerne plusieurs domaines mais étant donné que le vrai problème semble venir de la classe SAXBuilder de l'API JDOM je pense qu'il a sa place dans ce forum.
    J'ai donc fait un programme JAVA qui prend en entrée un fichier XML et qui va dans un premier temps parser ce fichier, puis faire des traitements sur les données parsées avant de finalement créer un nouveau fichier XML résultat de ce traitement.

    Ce programme fonctionne très bien dans la console. Pour l'application que je développe j'ai besoin de passer par php sur un serveur Apache2 donc pour utiliser le programme JAVA.

    J'ai donc dans mon programme PHP utilisé la fonction system("java monProgramme donnees.xml", $retval); qui exécute la commande passée en paramètre dans un shell. J'ai bien vérifié que l'utilisateur sur lequel tourne le serveur Apache2 a les droits nécessaires, et que le CLASSPATH et le PATH soient bien configurés. D'ailleurs lorsque j'éxécute mon programme JAVA en mode console en étant loggué sous cet utilisateur tout marche bien.

    Et là, bizarrement quand j'exécute le programme, il y a un problème. Après pas mal de temps de recherche je suis arrivé à isoler ce qui empêchait le programme de fonctionner et apparemment cela viendrait de la ligne suivante dans le programme JAVA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SAXBuilder sxb = new SAXBuilder();
    J'ai réduit au maximum mon programme pour ne laisser plus que ça dans la classe principale du programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public ParseurDOM()
        {
            SAXBuilder sxb = new SAXBuilder();
            System.out.println("Test");
        }
    En exécutant le programme JAVA depuis PHP avec ça dans la classe principale, j'ai un retour d'exécution à 1 qui indique qu'il y a une erreur (qui ne peut donc venir que du constructeur SAXBuilder) et l'affichage de la ligne "Test" ne se fait pas.

    En enlevant l'appel au constructeur SAXBuilder(), j'ai bien l'affichage de la ligne "Test". Le problème se situe donc dans le constructeur SAXBuilder().

    J'ai donc été voir dans les sources de JDOM dans la classe SAXBuilder et je ne vois rien de spécial en fait. Lors de l'instanciation, il y a juste une instanciation de la classe DefaultJDOMFactory dont le constructeur ne fait rien !

    Donc, je ne vois vraiment pas d'où ça peut venir à ce niveau là, je pensais à un problème de localisation du driver SAX utilisé par SAXBuilder mais même en changeant et en mettant dans le constructeur SAXBuilder() un driver SAX valide : org.apache.xerces.parsers.SAXParser par exemple (et en modifiant le classpath), le problème reste le même.

    J'ai même tenté d'utiliser d'autres API du même genre comme DOM4J ou autres mais ça bloque toujours au même niveau lorsque l'on crée une instance de la classe cherchant les drivers SAX apparemment.


    Quelqu'un aurait une idée de ce que je peux faire ? Peut-être modifier des options dans Apache2 (je ne vois pas trop ce que je peux modifier de plus en fait)? Modifier un chemin d'accès ? Ou peut être cela ne peut pas se faire et ça ne marchera pas ?

    Merci d'avance de votre aide.

  2. #2
    Membre expérimenté Avatar de scifire
    Inscrit en
    Juillet 2004
    Messages
    226
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 226
    Par défaut
    Je suis 100% sur que le probleme vient de CLASSPATH et que ton programme ne peut pas trouver le jdom.jar. Sinon il n'y a pas de sens. Ton programme tourne avec des classes Java standard( java.lang, java.io ...).
    Redefini le classpath en ajoutant le jdom.jar dans le chemin(si tu ne l'as pas deja fais ). Je suis pas familier avec Apache et PHP mais si ils ont un repertoire particulier de jars tu dois mettre le jdom.jar la-bas.

    Ou peut être cela ne peut pas se faire et ça ne marchera pas ?
    Si il peut ! Si tu as reussi a faire tourner un HelloWorld Java tu peux faire tourner TOUTE application Java.

    En tout cas l'emplacement de jdom.jar est la bonne direction de chercher la solution de ton probleme.

  3. #3
    Membre éprouvé Avatar de minus
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 153
    Par défaut
    Oui ca vient du class-path c'est quasi-certain, j'ai le meme genre de probleme lorsque j'ai commencé a utiliser JDOM, et j'ai mis un moment a trouver comment regler le truc.

    Si tu utilises Eclipse c'est tout con a regler.

    Tu clic droit sur ton projet et tu rentre dans les propriétés, puis tu va dans :
    Java Build Path >>> Libraries >>> Add JARs

    Et la tu met le jdom.jar.


    En principe ca devrait fonctionner correctement

Discussions similaires

  1. [JDOM] Problème avec SAXBuilder
    Par Doudd@ dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/03/2009, 23h39
  2. Problème avec saxbuilder.build d'un fichier xml
    Par jad_jad dans le forum Android
    Réponses: 0
    Dernier message: 26/11/2008, 16h47
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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