Wohin mit den externen libs in Glassfish
Habe ich einen JSF2-Projekt mit Netbeans 7 und erfolgreich im Einsatz auf Glassfish 3.1.
Die ear-Datei hat inzwischen ziemlich groß (6.5 mb) obwohl, die meisten davon aus der externen jar-Dateien (wie z.B. apache commons, solrj, primefaces und pdfrenderer etc.) die kopiert man in den jeweiligen Krieg/ejb-Dateien.
Meine Frage ist: wie kann ich das vermeiden und mein Ohr Datei kleiner - sollte es enthalten nur die Sachen, die ich erstellt, die externen libs sollte nur zum Einsatz, einmal auf dem server.
Suchte ich im Internet nach Antworten auf diese und das einzige, was ich gefunden habe war setzen die externen jar-Dateien unter "domains/domain1/lib' oder 'domains/domain1/lib/ext' in der glassfish-installation Verzeichnis, und deaktivieren Sie das 'Paket' - flag in der Netbeans-Projekt-library-Einstellungen, aber nichts davon funktionierte bisher (ich bekomme immer ClassNotFoundExceptions).
Muss ich etwas anderes tun, sich eine classpath-Einstellung irgendwo oder wie kann ich das erreichen? Hat jemand eine Lösung?
Update: Ok fand ich heraus, dass dies nur geschieht, auf meinem lokalen Glassfish installieren, der kommt mit Netbeans (eine laptop mit 64bit Windows 7 läuft es). Auf meinem remote-Linux-Rechner funktioniert es wie erwartet, d.h. ich war in der Lage, alle externen libs in 'domains/domain1/lib' - mein Ohr Datei ist nur ~700 Kb jetzt 🙂
Ich werde versuchen, diese auf meinem Mac und auf einem anderen Windows 7-Rechner zu, um festzustellen, ob dies ein OS Problem im Zusammenhang oder etwas anderes.
- Für die Referenz, eine ähnliche Frage wurde hier beantwortet: stackoverflow.com/questions/12219788/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, ich kann die Frage beantworten, die mich jetzt: domain1/lib scheint der richtige Ort, um all diese jar-Dateien. Zumindest funktioniert es tadellos auf der 2 Linux-Boxen, die ich ausprobiert und auf meinem Mac. Ich fand auch heraus, warum es nicht funktioniert das gleiche auf meinem Windows 7 laptop.
Die domain Weg ist benutzerspezifisch, wenn Sie die Glassfish installieren, der kommt mit Netbeans, das bedeutet, dass Sie haben, um die jar-Dateien unter
arbeiten als expectd, Gläser unter
auf der anderen Seite scheinen ignoriert durch den classloader.
Nur Verzeichnis, das ist Teil der classpath ist der
domain1\lib\classes
- Verzeichnis. Setzen Sie Ihre Gläser dort, fügen Sie dem Klassenpfad.Können Sie auch in Ihrer ear-Datei unter der
lib
- Verzeichnis (ehemals APP-INF\lib). Das ist der Ort, um Ihre gemeinsamen Gläser.