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

Java Discussion :

java.lang.NoClassDefFoundError: org/htmlparser/util/ParserException


Sujet :

Java

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Par défaut java.lang.NoClassDefFoundError: org/htmlparser/util/ParserException
    Bonsoir !

    Alors voila j'ai l'erreur java.lang.NoClassDefFoundError: org/htmlparser/util/ParserException lors du lancement d'une application Java.

    Cependant voila, là où ça se complique c'est que j'ai une application maitre (codé en windev) qui va lancer cette fameuse application Java sur 7 serveurs différents en simultané.

    L'application Java consiste brièvement à enregistrer du contenu de site web grâce à leur module associé. Un module est une classe Java qui en gros à travers des macro va définir les règles pour enregistrer notre contenu souhaité. Mais là n'est pas le sujet.
    C'est au démarrage de l'application, lorsqu'il va charger tous les modules (donc une liste de class Java qui se trouve sur chaqu'un des 7 serveurs) qu'il va y avoir cette exception.

    Vu comme j'interprète cette exception c'est qu'il n'arrive tout simplement pas à charger les modules (voir image ci-dessous pour plus de détail sur l'exception générée).

    Cependant voila, il arrive à le faire sur 5 des 7 serveurs. J'ai alors comparé les variables d'environnement, la version Java installée, la hiérarchie des répertoires et fichiers et je n'ai pas trouvé de différence avec les serveurs qui marchent et ceux où ça ne marchent pas.

    J'ai également fait une recherche sur les différents serveurs pour vérifier si par exemple le fichier jar htmlparser.jar s'y trouvait bien. Et il s'y trouve bien...

    Donc voila, si vous avez des éléments de solution.

    Exception complète :


  2. #2
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Ce jar peut très bien être présent sur la machine, tout en n'étant pas référencé dans le classpath.

    S'agit il d'une appli java standalone ou d'une appli web?
    Si c'est une appli web il faut vérifier que ce jar se trouve bien dans le répertoire WEB-INF/lib du war (ou du répertoire) de l'application.

    S'il s'agit d'une application standalone (lancée via ligne de commande), il faut vérifier si le fichier htmlparser.jar est bien référencé dans la fichier META-INF/MANIFEST.MF du jar principal de l'application.

    Il en est de même pour les jars dont dépend la librairie htmlparser.

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Par défaut
    C'est une application standalone.

    En fait ce qui me gène c'est que ces fameux 7 serveurs ne contiennent QUE l'exécutable avec JRE uniquement d'installé. Ils ne disposent aucunement de fichiers associés aux sources et utilisé lors de la compilation comme le fichier CLASSPATH etc...

    Cet exécutable (qui est donc copié sur les 7 serveurs) est quant à lui compilé sur ma machine où là le CLASSPATH est normalement juste vu que cet exécutable fonctionne sur 5 des 7 serveurs.

    Du coup la seule explication que je donne à cela c'est que dans le dossier contenant l'exécutable jar et qui se trouve sur les 7 serveurs, il doit encore y avoir un fichier de configuration quelque part qui fourni un chemin ou je ne sais quoi qui ne correspond pas avec 2 des 7 serveurs. (exemple: le fichier launch4j.xml peut-être).

    Sachant que chaque serveurs dispose du même dossier contenant le même exécutable jar.

    Alors est-ce qu'il est nécessaire que j'installe Eclipse sur les serveurs qui ne fonctionne pas pour vérifier le fichier META-INF ou est-ce encore une autre erreur ?

  4. #4
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Par défaut
    J'ai extrait le jar principal provenant d'un serveur qui fonctionne et d'un autre qui ne fonctionne pas. Je les ai comparé tout est identique je ne comprend pas

    J'ai regardé dans META-INF et MANIFEST.MF la seule ligne que je vois c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Manifest-Version: 1.0
    Main-Class: IMacroAspirateur
    Mais d'un autre côté cette configuration marche sur 5 des 7 serveurs, donc je me dis qu'il doit y avoir une configuration ailleurs.

    La racine (jar principal extrait) ressemble à ça :



    Sachant qu'il y a un dossier xerces dans org/apache. Je pense que la configuration du parser se trouve ainsi à cet endroit.

    Je ne comprends pas.

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    167
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 167
    Par défaut
    On a réussi à contourner l'erreur en supprimant des dll's.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/01/2010, 01h58
  2. Réponses: 8
    Dernier message: 16/06/2007, 03h36
  3. Réponses: 4
    Dernier message: 21/02/2007, 12h13
  4. [JDOM] java.lang.NoClassDefFoundError: org/jdom/Content dans une application web
    Par oughlad dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 30/05/2006, 18h06
  5. [DisplayTag] java.lang.NoClassDefFoundError: org/apache/commons/lang/UnhandledException
    Par MAJIK_ENIS dans le forum Taglibs
    Réponses: 18
    Dernier message: 06/04/2006, 10h18

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