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 :

DocumentBuilderFactory très lent (?)


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut DocumentBuilderFactory très lent (?)
    Bonjour,

    J'ai codé une Applet parcourant un dossier passé en paramètre. Ce dossier contient des fichiers XML et je souhaite vérifier si ces derniers sont signés ou non. Or, mon Applet s'arrête au moment de la création du DocumentBuilderFactory.

    Voilà le code (simplifié : j'ai enlevé plusieurs lignes ne servant à rien dans mon problème) permettant de vérifier la présence d'une signature :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    org.w3c.dom.Document xmlDoc = dbf.newDocumentBuilder().parse(f);
    NodeList nl = xmlDoc.getElementsByTagNameNS(XMLSignature.XMLNS, "Signature");
    
    if (nl.getLength() != 0) {
    	System.out.println("Fichier signé");
    }
    else {
    	System.out.println("Fichier non signé");
    }
    Après avoir rajouté des System.out.println() de partout, j'ai remarqué que l'exécution de l'Applet s'arrêtait bien à la ligne en gras.

    Autre remarque, l'Applet plante quand j'essaie d'exécuter mon Applet (qui est signée) sur un site utilisant SSL et authentification par certificat. Or, si je l'exécute sur une page HTML toute simple sur notre serveur local, tout fonctionne parfaitement (de même directement dans NetBeans).

    Quelqu'un aurait une idée de ce qui cause ce bug ?

    Merci d'avance.

    DarkSeiryu

    EDIT : aucun retour dans la console, comme si l'Applet cessait de s'exécuter).

  2. #2
    Membre Expert
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Sans certitude, ce se serait pas un soucis de permissions sur les fichiers XML ?

  3. #3
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Je ne pense pas, étant donné qu'en lançant l'Applet depuis une autre page HTML (non sécurisé) dans le même navigateur (Opera), l'accès au fichier se fait sans problème.

    Et de toute façon, la ligne où ça bloque ne touche pas du tout au fichier. Par contre, d'autres parties de mon code le font avant l'appel à cette fonction de vérification et me donnent accès à ces fichiers.

    DarkSeiryu

  4. #4
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Du coup, juste pour confirmer que c'est bien l'Applet qui devient très lente au moment décrit. Nous l'avons laissé tourner 45min et elle a bien effectué les traitements de vérification des fichiers avant de passer à l'étape des signatures.

    Personne ne voit d'où ça pourrait venir ?

    DarkSeiryu

  5. #5
    Membre très actif Avatar de DarkSeiryu
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    425
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 425
    Par défaut
    Nouveaux éléments (désolé pour le double poste mais c'est pour être sûr que tout le monde y voit) :

    Je suis allé regarder dans les logs Apache, et je trouve à chaque exécution de mon Applet des lignes comme ça (j'ai pas tout mis, y'en a une chiée) :
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/Datas/version_fr.class HTTP/1.1" 404 463 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/Datas/version_fr.properties HTTP/1.1" 404 468 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/Datas/version_fr_FR.class HTTP/1.1" 404 466 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/Datas/version_fr_FR.properties HTTP/1.1" 404 471 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    192.168.1.81 - - [22/Mar/2012:13:28:55 +0100] "GET /scripts_mickael/META-INF/services/javax.xml.parsers.DocumentBuilderFactory HTTP/1.1" 404 499 "-" "Mozilla/4.0 (Windows 7 6.1) Java/1.7.0_03"
    Du coup, j'ai l'impression qu'il cherche des classes Java là où il ne risque pas d'en trouver et que du coup, il parcourt une grosse arborescence de fichiers avant d'arriver à trouver ce dont il a besoin.

    Qu'est-ce qu'il faut que je fasse pour empêcher ça ?

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Marrant. Enfin, façon de parler. Apparemment, Java considère que ton site web fait partie du classpath disponible pour aller chercher des ressources.

    Je serais assez surpris que ce soit normal. Tu peux nous montrer avec quel code tu intègres l'applet dans la page ? C'est bien un .jar, n'est-ce pas ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. BDD sur réseau très très très lent...
    Par ericain dans le forum Access
    Réponses: 12
    Dernier message: 20/02/2015, 17h17
  2. Ouverture et fermeture de base très lent...
    Par Tofdelille dans le forum Installation
    Réponses: 6
    Dernier message: 19/09/2006, 18h51
  3. [Lomboz] Editeur jsp très lent
    Par lr dans le forum Eclipse Java
    Réponses: 10
    Dernier message: 29/01/2005, 19h43
  4. SQL Server trés lent
    Par arwen dans le forum MS SQL Server
    Réponses: 18
    Dernier message: 07/11/2003, 14h45

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