Wie kann ich das lösen einer NoClassDefFoundError?
Habe ich installiert Oracle Weblogic 11g auf Oracle Linux und ich versuchte eine von Oracle ' s ADF-tutorials mit jdeveloper 11g. Wenn ich mein Projekt erfolgreich kompiliert ohne Fehler. Es beginnt mit der Bereitstellung der Anwendung auf dem weblogic-server und mein Standard-internet-browser öffnet. Aber dann kommt eine Fehlermeldung "500 Internal server error" angezeigt.
Bin ich immer die folgende Fehlermeldung:
java.lang.NoClassDefFoundError: Could not initialize class org.apache.myfaces.trinidadinternal.convert.ColorConverter at....
Recherchierte ich im internet für dieses problem und auch ich fragte herum, und die häufigste Antwort war, dass es ein problem mit dem classpath. Wahrscheinlich die Bibliotheken, die verwendet werden in jdeveloper sind nicht die gleichen in weblogic dann wird das Projekt bereitgestellt.
Kann mir jemand sagen, ob definitiv das problem ist der classpath??
Und wie kann ich setup jdeveloper zum bereitstellen der gleichen classpath es verwendet, um die weblogic server?
InformationsquelleAutor Alexandros | 2012-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
java.lang.NoClassDefFoundError
bedeutet, dass die Laufzeit version der Klasse in der classpath ist nicht das gleiche, wie bei kompilieren Zeit.Dein problem könnte mehrere Versionen der Klasse gefunden, wenn der server bereitstellen. Ich merke, die Klasse
org.apache.myfaces.trinidadinternal.convert.ColorConverter
ist intrinidad-impl.jar
Können Sie suchen, für wie viele solche Gläser gefunden, in dem Laufzeit-server-Umfeld, sowie die eigene webapp Bibliotheken?
Unter windows, die Jdev eingebaute server läuft in diesem Ordner
C:\Users\<...>\AppData\Roaming\JDeveloper\system11.1.1.4.37.59.23 oder etwas ähnliches
müssen Sie diese in Ihre webapp/WEB-INF/lib und nicht in die anderen Bereiche.
Auf meinem lokalen finde ich die 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önnte verwenden weblogic.xml Einstellung zu zwingen, die WEB-INF/lib-Klasse geladen, in den Vorzug, die im server/lib mit
Die Sache ist, dass ich installiert haben meine eigenen weblogic server und im nicht mit die, integriert in jdeveloper.Das ist, dass ich verwenden möchten, die ich installiert habe. Ich habe bei der Konfiguration meines Projekts bereitstellen zu meinem server aber wenn ich versuche, mein Projekt kann ich sehen, dass jdeveloper ist auch die Bereitstellung der integrierten server.
Ich nicht sicher, ob das verursacht keine Probleme. Ich Suche die trinidad-impl.jar Datei wie du gesagt hast und ich fand es an vielen Orten:
./u01/app/oracle/product/Middleware/user_projects/domains/test2_domain/servers/ManagedServer_1/tmp/_WL_user/HRSystem_ViewController_webapp/fqr4zh/WEB-INF/lib/trinidad-impl.jar
./u01/app/oracle/product/Middleware/user_projects/domains/test2_domain/servers/ManagedServer_1/tmp/_WL_user/HRSystem_ViewController_webapp/fqr4zh/.tlds/.tld_cache/trinidad-impl.jar
InformationsquelleAutor JoseK
Dies geschieht, wenn Sie versuchen, eine Klasse zu laden, die zu laden versucht eine andere Klasse ist nicht im classpath. Finden Sie heraus, welche Klassen benötigt werden, die von ColorConverter und stellen Sie sicher, dass Sie in Ihrem Klassenpfad befinden.
InformationsquelleAutor Triton Man
Zuerst einmal: Was sind Sie bereitstellen auf dem server? ADF-jar-oder war-Datei. In Ihrem Fall - da Sie nicht über die abhängigen jars auf dem Anwendungsserver installiert. Implementieren Sie die war-Datei.
Ihrer Ansicht-Projekt - mit der rechten Maustaste und wählen Sie Projekteigenschaften. Dann gehen Sie auf Bereitstellung, und Bearbeiten Sie die deployment-Profil (falls nicht vorhanden erstellen). Stellen Sie sicher, dass die checkbox "Include-Bibliotheken aus anderen Projekten" aktiviert ist. (ES ist in der Bibliothek Registerkarte "Abhängigkeiten").
Außerdem: vielleicht finden Sie einige nützliche Informationen in hier.
Hoffe, das hilft.
Michael
InformationsquelleAutor Michael Willer
Mit
StackTrace
finden Sieclasses
diese fehlen .Ich denke, Sie sind fehlt etwas Glas und das sollte in Ihrem Klassenpfad befinden.InformationsquelleAutor amicngh