Groovy Ressourcen aus dem classpath nicht geladen

Guten Tag alle.

Ich bin mit spock-framework zum testen in meinem groovy-Projekt(IDE - Intellij Idea 12.6). Meine spock-Spezifikation Klasse pass mit dem Namen auf groovy-Objekt für die Verarbeitung (die Datei liegt im classpath sicher), aber wenn ich versuche, zu bekommen, dass die Datei auf diese Weise

    def resource = getClass().getClassloader().getResourceAsStream(filepath)
    assert resource != null : "No input stream found for path ${filepath}"
    def rootNode = new XmlParser().parse(resource)

Dann resource == null.

Habe ich versucht zu Debuggen und in der Auswertung eines Ausdrucks windows mit diesem code getClass().getResource(fileName) gibt Ressource.

Habe ich versucht zu überprüfen, welche classloader verwendet, im ersten Fall (in der Klasse mit dem code) und im zweiten Fall (Auswertung eines Ausdrucks Fenster).

Im ersten Fall classloader war sun.misc.Launcher$AppClassLoader@18dabf1, aber in der Auswertung eines Ausdrucks Fenster classloader war groovy.lang.GroovyClassLoader$InnerLoader@1e69757 ich nehme an, das ist der Grund, warum meine Ressource war null.

Kann jemand mich leiten, was ich falsch mache und wie kann ich laden Sie die Ressource-Datei ?

UPDATE:

Verändert die Art resource-Datei analysiert. Wenn filepath - vollständiger Pfad zur Datei das funktioniert, aber wenn filepath nur Datei Namen und der Datei im classpath dann resource == null

UPDATE2:

Ändern, wie Ressourcen-Datei geladen, Aufräumen Abhängigkeiten bit und alles funktioniert, ich denke, gestern war einfach nicht mein Tag.

Vorbei nur das mit dem Namen funktioniert nur, wenn die Ressource ist im gleichen package wie die Klasse verwiesen wird, die von getClass(), und nur, wenn Class#getResourceStream verwendet wird (anstatt ClassLoader#getResourceStream).

InformationsquelleAutor artjomka | 2013-11-26

Schreibe einen Kommentar