Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je résoudre une NoClassDefFoundError ?

java.lang.NoClassDefFoundError signifie le runtime la version de la classe dans le classpath n'est pas la même que celle à compile temps.

Votre problème peut être que plusieurs versions de la classe sont trouvées lors du déploiement du serveur. Je remarque la classe org.apache.myfaces.trinidadinternal.convert.ColorConverter se trouve dans trinidad-impl.jar

Pouvez-vous rechercher combien de fichiers JAR se trouvent dans l'environnement du serveur d'exécution ainsi que dans vos propres bibliothèques d'applications Web ?

Sous Windows, le serveur intégré Jdev s'exécute dans ce dossier

C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 ou quelque chose de similaire

vous en avez besoin dans votre webapp/WEB-INF/lib et pas dans les autres zones.

Sur mon local, je trouve le Jar sous C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23\o.j2ee.wlLibs\jsp\Trinidad-Components1.2.war

Je pense que vous pouvez utiliser le paramètre weblogic.xml pour forcer la classe WEB-INF/lib à être chargée de préférence à celle de server/lib avec

    <container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor>