Bonjour!
Je travaille sur une appli web avec Tomcat 5.5 et Eclipse 3.2.
J'ai un problème qui me prend la tête depuis un petit moment, je vous l'explique :
J'ai un projet avec l'arborescence suivante :
-build
-classes(meme arborescence ensuite que dans src)-fwk
-src
-fwk-core-GenericObject.java-util-PackageExplorer.java-metier-objets-MonObjet.java
les classes du package "objets" heritent de la classe GenericObject
Avec Ma classe "PackageExplorer" je parcours l'arborescence du package "metier", et pour chaque fichier se terminant par ".class", je charges l'objet Class correspondant à ce fichier par introspection.
Pour cela, j'ai redéfini un ClassLoader qui effectue un "defineClass" à partir du ByteCode de chaque fichier .class trouvé.
Ce mécanisme fonctionne, mais au moment ou le ClassLoader effectue le defineClass (pour une classe du package "objets"), il me sort l'exception suivante :
"java.lang.NoClassDefFoundError: fwk/core/GenericObject"
en fait il ne trouve pas la classe mère "GenericObject" qui se trouve plus haut dans l'arborescence. J'ai bien essayé de mettre la classe mère au même niveau que les classes filles, mais le résultat est le même.
J'ai également tenté de relancer la recherche après avoir viré l'import de "GenericObject" dans les classes filles. Cette fois, bien qu'il y ait une erreur de compil dans les classes filles, le defineClass fonctionne.
J'ai aussi testé mon "PackageExplorer" en le faisant tourner en local grâce a une classe de test. Dans ce cas de figure, il fonctionne sans problème.
J'espère avoir été clair, si quelqun a une idée, qu'il n'hésite pas.
Partager