Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich einen NoClassDefFoundError lösen?

java.lang.NoClassDefFoundError bedeutet die Laufzeit Die Version der Klasse im Klassenpfad ist nicht die gleiche wie die beim compilieren Zeit.

Ihr Problem könnte darin bestehen, dass mehrere Versionen der Klasse gefunden werden, wenn der Server bereitgestellt wird. Ich bemerke die Klasse org.apache.myfaces.trinidadinternal.convert.ColorConverter befindet sich in trinidad-impl.jar

Können Sie suchen, wie viele solcher JAR-Dateien in der Laufzeitserverumgebung und Ihren eigenen Webapp-Bibliotheken gefunden werden?

Unter Windows läuft der eingebaute Jdev-Server in diesem Ordner

C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 oder ähnlich

Sie benötigen diese in Ihrer webapp/WEB-INF/lib und nicht in den anderen Bereichen.

Auf meinem Local finde ich das Jar unter C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23\o.j2ee.wlLibs\jsp\Trinidad-Components1.2.war

Ich denke, Sie könnten die Einstellung weblogic.xml verwenden, um zu erzwingen, dass die Klasse WEB-INF/lib mit

gegenüber der in server/lib geladen wird
    <container-descriptor>     
<prefer-web-inf-classes>true</prefer-web-inf-classes>   
</container-descriptor>