Leichtgewichtige JEE Entwicklung mit dem Spring Framework
Posts 1-3 of 3
-
Oliver Gierke Premium MemberThe company name is only visible to registered members.Wildcards und Tomcat Classloader
Hallo zusammen,
ich versuche grad folgendes: ich möchte per Wildcards alle Files im Classpath mit dem Namen application-context.xml unterhalb eines bestimmten Packages laden:
classpath*:com/foo/bar/**/application-context.xml
Nun ist es aber so, dass das nur so lang funktioniert, wie diese Files in WEB-INF/classes liegen. XML Files in JARs werden nicht gefunden.
Das Debugging hat mich soweit gebracht, dass der Tomcat Classloader keine Folder zurückgibt für getResources("com/foo/bar") (Spring macht wohl den lookup so). Versucht man getResources(..) mit dem kompletten Pfad zur Datei, findet er sie.
Ich hab nun im Tomcat Bugzilla diesen Bug gefunden
https://issues.apache.org/bugzilla/show_bug.cgi?id=41664. Der beschreibt das erwartete Verhalten zwar etwas komisch, ist aber grundsätzlich, dass was ich bzw. Spring benötigen würden. Komischerweise schließt der Bug mit "das ist genau so implementiert". Ist es aber scheinbar nicht. Der eclipseinterne Jetty tut leider auch nicht so wie er soll.
Hat jemand Ideen / Anregungen? (... ausser die Wildcard wegzulassen? Das ist nämlich leider keine Option)
Gruß
Ollie
- 24 Apr 2008, 3:52 pm
-
- 24 Apr 2008, 4:08 pm
-
Oliver Gierke Premium MemberThe company name is only visible to registered members.Re^2: Wildcards und Tomcat Classloader
Ich vermute nicht, denn das ganze stellt sich grad als Bug / Feature des Tomcat Classloader heraus. Grund ist die Abstraktion der JarFiles bzw. wie der Tomcat Classloader damit umgeht.
In java.util.jar.JarFile ist nur jedes File (also eine richtige Datei) als JarEntry representiert. jarFile.getEntry("com/foo/bar") liefert null für bar als Ordner. Das gute Stück sollte eher über die Entries iterieren und schauen, ob es einen Entry gibt, der mit dem übergebenen Namen anfängt.
Nunja, mal sehen, wie man dem Bugreport noch Nachdruck verleihen kann.
Um das ganze etwas gruppenspezifischer zu machen: hat irgendjemand hier wider Erwarten eine Spring Webapp am laufen, die Konfigurationsfiles per Wildcards aus Jars ausliest?
Gruß
Ollie
- 24 Apr 2008, 7:11 pm
