Weblogic EJB-Einsatz: die Klassen in der jar-innen Ohr nicht zugänglich sind
Ich versuche zum bereitstellen einer ear-mit einer ejb-Anwendung in weblogic 9.2-server.
Diesem Ohr wird erstellt unter Verwendung von maven (selbst mit dem Ohr ant-task). Maven erzeugt die folgende Struktur:
myApp.ear
- META-INF
- application
- MANIFEST.MF
- dependency-1.jar
- dependency-2.jar
- ...
- dependency-n.jar
- myEjb.jar
Das manifest enthält eine Klasse Pfad Abschnitt, der gut aussehend ist (alle jar-Abhängigkeiten aufgelistet sind)
Wenn ich versuche zum bereitstellen der ear-bekomme ich einen NoClassDefFoundError exception.
Wenn ich alle meine jars im lib-dir von meiner domain, das Ohr ist erfolgreich im Einsatz.
Wenn ich alle meine Gläser in eine dir genannte APP-INF/lib (weblogic standard), das Ohr wird erfolgreich eingesetzt zu werden.
myApp.ear
- META-INF
- application
- MANIFEST.MF
- APP-INF
- lib
- dependency-1.jar
- dependency-2.jar
- ...
- dependency-n.jar
- myEjb.jar
In das gleiche Projekt, ich habe andere Ohren, die nicht die APP-INF/lib-dir, funktioniert perfekt.
Nicht hat jemand eine Idee, warum weblogic ist nicht in der Lage zu implementieren meinem Ohr ?
Nach einigen Untersuchungen fand ich die Ursache: es war das manifest class-path der myEjb.jar -Modul. Siehe Kommentar in der akzeptierten Antwort.
Vielen Dank.
InformationsquelleAutor Guillaume | 2010-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den standard-Ansatz für die Abhängigkeit Gläser in einem OHR ist Sie in den APP-INF/lib, so wie Sie auf die Dokumentation
http://download.oracle.com/docs/cd/E13222_01/wls/docs81/programming/environment.html#1099434
Ich vermute das problem in deinem ersten OHR ist in der aktuellen classpath-Einträge in Ihrem Manifest.mf
sehen die Manifest Class-Path Abschnitt auf http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/classloading.html#wp1065667
Gibt es sub-directories oder relativen Pfad falsch?
Ich Frage mich, ob das dependency-jars hat eine Abhängigkeit mit einer anderen gebündelt Abhängigkeit - daher verursacht Problem?
Ich habe das problem gefunden: es wurde ein Manifest Class-Path-problem auf der ejb.jar Modul, nicht in das Ohr der META-INF/MANIFEST Class-Path. Vielen Dank für Eure Hilfe.
InformationsquelleAutor JoseK