8 Stimmen

FileNotFoundException..Klassenpfad-Ressource nicht in spring? gefunden

Ich habe den folgenden Code in Main.java :

AbstractApplicationContext context  = new ClassPathXmlApplicationContext("spring-config.xml");

Bis vor kurzem hat es noch funktioniert, aber ich weiß nicht, warum es mit der folgenden Ausnahme fehlgeschlagen ist:

Ausnahme im Thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException beim Parsen des XML-Dokuments von Klassenpfad-Ressource [spring-config.xml]; verschachtelte Ausnahme ist java.io.FileNotFoundException: Klassenpfad-Ressource [spring-config.xml] kann nicht geöffnet werden weil sie nicht existiert

die spring-config.xml está en src/main/resources Ordner.

Eigentlich wollte ich etwas über die Anmerkungen erfahren: @Postconstruct und @Predestroy, also änderte ich den Build-Pfad auf Jdk 1.6 von Jdk 1.5.

Seitdem hat das Problem begonnen...

Haben Sie eine Ahnung, warum es nicht funktioniert?

HINWEIS: Wenn jemand meine Projektstruktur sehen möchte, folgen Sie bitte diesem Link http://code.google.com/p/javapracticeram/source/browse/trunk/SpringExample/

EDITAR: alt text

11voto

tolitius Punkte 21349

Blick auf Ihr Klassenpfad Sie schließen aus src/main/resources y src/test/resources :

    <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
    <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources"/>

Gibt es dafür einen Grund? Versuchen Sie, einen Klassenpfad nicht auszuschließen, um spring-config.xml :)

3voto

earldouglas Punkte 13012

Überprüfen Sie den Inhalt von SpringExample/target/classes. Ist die Datei spring-config.xml vorhanden? Wenn nicht, versuchen Sie, das Verzeichnis SpringExample/target/ manuell zu entfernen, und erzwingen Sie einen Neuaufbau mit Project=>Clean... in Eclipse.

0voto

YoK Punkte 14075

Dies ist darauf zurückzuführen, dass spring-config.xml nicht im Klassenpfad liegt.

Fügen Sie den vollständigen Pfad von spring-config.xml zu Ihrem Klassenpfad hinzu.

Schreiben Sie auch den Befehl, den Sie ausführen, um Ihr Projekt zu starten. Sie können den Klassenpfad im Befehl überprüfen.

0voto

Ryan Stewart Punkte 120600

Zwei Dinge sind erwähnenswert:

  1. Der Gültigkeitsbereich Ihrer spring-context-Abhängigkeit sollte nicht "runtime", sondern "compile" sein, was die Standardeinstellung ist, so dass Sie die Zeile scope einfach entfernen können.
  2. Sie sollten das Compiler-Plugin so konfigurieren, dass es mindestens bis Java 1.5 kompiliert, um die Annotationen bei der Erstellung mit Maven zu verarbeiten. (Kann sich auch auf die IDE-Einstellungen auswirken, obwohl Eclipse nicht dazu neigt, sich darum zu kümmern).

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

Danach sollte die Neukonfiguration Ihres Projekts von Maven aus das Problem beheben. Ich weiß nicht mehr genau, wie man das in Eclipse macht, aber Sie sollten es finden, wenn Sie mit der rechten Maustaste auf den Projektknoten klicken und in den Menüs herumstöbern.

0voto

kaykae Punkte 691

Ich hatte das gleiche Problem, als ich mein Projekt startete. Als ich die Dateistruktur überprüfte, stellte ich fest, dass sich die xml-Datei von Spring innerhalb des Projektpakets befand und daher nicht gefunden werden konnte. Ich habe sie außerhalb des Pakets platziert und es funktionierte einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X