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

Wildfly/JBoss Java Discussion :

java.lang.NoClassDefFoundError au déploiement d'un ear


Sujet :

Wildfly/JBoss Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut java.lang.NoClassDefFoundError au déploiement d'un ear
    Bonjour à tous,

    Comme pas mal de monde j'ai l'impression, j'ai un java.lang.NoClassDefFoundError au déploiement de mon application sous JBoss EAP 4.3.0 CP02.

    Le truc, c'est que le .jar est évidemment présent dans mon ear. Et que si je le sors de l'ear (pour le mettre dans /server/<maconfig>/lib par exemple), ça marche bien (enfin, ça fait la même erreur au jar suivant quoi mais je suppose que si je les sortais tous, ça finirait par passer).

    Le fait est que je ne peux pas tous les sortir (d'une part, ça ferait beaucoup de boulot, et d'autre part, je ne suis que l'intermédiaire...). Bref, je voudrais comprendre pourquoi JBoss ne trouve pas les jar compris dans mon ear ?

    J'ai essayé de bidouiller un peu le MANIFEST.MF mais sans grand succès (en même temps, ce n'est pas ce que je connais le mieux).

    Structure de l'ear :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    +---apache
    ¦   +---jakarta
    ¦   ¦   +---commons
    ¦   ¦       +---io
    ¦   ¦       ¦   +---
    ¦   ¦       +---logg
    ¦   ¦       ¦   +---
    ¦   ¦       +---math
    ¦   ¦           +---
    ¦   +---xml
    ¦       +---xmlbean
    ¦           +---jars
    +---cglib
    ¦   +---jars
    +---ehcache
    ¦   +---jars
    +---jboss
    ¦   +---as
    ¦   ¦   +---jars
    ¦   +---hibernate
    ¦       +---jars
    +---META-INF
    ¦   +---WEB-INF
    +---objectweb
    ¦   +---jars
    +---springframework
        +---jars
    Fichiers à la racine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    app-jboss.jar
    app-jboss.war
    app.properties
    A savoir que le app-jboss.jar contient un MANIFEST.MF très complet avec les .jar des autres dossiers (apache/jakarta...)

    Merci pour vos avis

  2. #2
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    J'ai peut être omis un détail: en fait, j'ai 2 ear. Le second utilisant les class du premier...

    Et j'ai l'impression que je n'ai plus l'erreur quand je retire le second ear... donc est-ce que cela pourrait venir du fait que JBoss tente de déployer celui-ci avant l'ear comportant les class ?

    Peut-on définir quel ear à charger en premier ?

    ==> oui, on peut, il suffit de changer d'URLComparator dans le jboss-service.xml...

    Je continue à chercher, mais si quelqu'un a des idées, je suis toujours preneur

  3. #3
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    J'ai essayé de bidouiller un peu le MANIFEST.MF
    A priori, dans un ear, c'est plutôt l'application.xml qu'il faut bidouiller.

    Sinon, tu peux essayer de mettre tes jar dans le lib de ton ear.

    Pour ce qui est des dépendances entre ear, c'est contraire à JavaEE, mais conforme au paramétrage par défaut de JBoss. Il existe une solution simple pour gérer l'ordre de démarrage : renommer un des fichiers, pour que son initiale précède l'autre.

  4. #4
    Membre très actif

    Homme Profil pro
    Responsable projets techniques
    Inscrit en
    Février 2003
    Messages
    980
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable projets techniques
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Février 2003
    Messages : 980
    Par défaut
    Citation Envoyé par hasalex Voir le message
    A priori, dans un ear, c'est plutôt l'application.xml qu'il faut bidouiller.

    Sinon, tu peux essayer de mettre tes jar dans le lib de ton ear.

    Pour ce qui est des dépendances entre ear, c'est contraire à JavaEE, mais conforme au paramétrage par défaut de JBoss. Il existe une solution simple pour gérer l'ordre de démarrage : renommer un des fichiers, pour que son initiale précède l'autre.

    Le problème, c'est que je ne peux normalement pas trop toucher à la structure du-dit ear :/

    Je vais regarder l'application.xml

    Ce qui me dérange le plus, c'est vraiment le fait que cela marche si je sors les jar de l'ear... je ne comprends pas pourquoi il ne les trouve pas quand ils sont dedans ?

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 205
    Par défaut
    Salut,

    comme dit hasalex, le probleme vient surement du application.xml ...

    Lorsque tu sors les jars ils sont deployées independamment sur le serveur et donc il les trouve...

    dans ton application.xml, tu dois definir les liens vers tes .jars et/ou ton .war

  6. #6
    Membre Expert
    Avatar de hasalex
    Homme Profil pro
    Développeur Java
    Inscrit en
    Janvier 2009
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2009
    Messages : 879
    Par défaut
    J'ai proposé de mettre les jars dans le répertoire lib car, en JavaEE 5, c'est le répertoire par défaut des librairies d'un ear.

    Si tu ne peux pas changer la structure de l'ear, il faut déclarer tous les jars. Ce n'est pas parce qu'un jar est dans l'ear qu'il est chargé...

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/05/2015, 21h36
  2. [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
  3. [Plugin][Hibernate Tools] java.lang.NoClassDefFoundError
    Par notrustinyou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/11/2005, 17h17
  4. [ eclipse3 ] [ Deb. ] java.lang.NoClassDefFoundError:
    Par Marc_3 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 19/10/2005, 12h26
  5. [Struts] java.lang.NoClassDefFoundError
    Par Zephoria dans le forum Struts 1
    Réponses: 2
    Dernier message: 08/02/2005, 10h51

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