Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso risolvere un NoClassDefFoundError?

java.lang.NoClassDefFoundError indica il runtime la versione della classe nel classpath non è la stessa di compila tempo.

Il tuo problema potrebbe essere la presenza di più versioni della classe durante la distribuzione del server. Noto la classe org.apache.myfaces.trinidadinternal.convert.ColorConverter si trova in trinidad-impl.jar

Puoi cercare quanti jar di questo tipo sono stati trovati nell'ambiente del server di runtime più le tue librerie webapp?

Su Windows, il server integrato Jdev viene eseguito in questa cartella

C:\Utenti\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 o qualcosa di simile

ne hai bisogno nella tua webapp/WEB-INF/lib e non nelle altre aree.

Sul mio locale trovo il Jar in C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23\o.j2ee.wlLibs\jsp\Trinidad-Components1.2.war

Penso che potresti usare l'impostazione weblogic.xml per forzare il caricamento della classe WEB-INF/lib rispetto a quella in server/lib con

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