Spring Kann die applicationContext.xml nicht finden

Diskutiere Kann die applicationContext.xml nicht finden im Application Tier Forum; Hallo Community, ich habe mein Problem jetzt schön öfters gegooglt. Ich bin auch auf viele Antworten gestoßen, allerdings hat keine geholfen....

  1. LostForce
    LostForce Neues Mitglied
    Hallo Community,

    ich habe mein Problem jetzt schön öfters gegooglt. Ich bin auch auf viele Antworten gestoßen, allerdings hat keine geholfen. Bereits sind schon einige Stunden Recherche drauf gegangen, sodass ich mich nun dafür entscheide meine Frage in einem Forum zu stellen.

    Ich habe ein neues Projekt in eclipse mittels maven gestartet. Nachdem ich dies getan habe, habe ich als dependencies Hibernate und Spring hinzugefügt (... und eine weitere).
    Das Projekt ist kein normales "public static void main" Projekt, sondern vielmehr ein Plugin für eine andere Software (Bukkit, falls das jemanden etwas sagt).

    Nun zu meinem Problem:
    Wenn ich mein Plugin mittels maven gebaut habe und es über die andere Software versuche zu starten, erhalte ich folgende Fehlermeldung:

    org.bukkit.plugin.InvalidPluginException: org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException:
    class path resource [applicationContext.xml] cannot be opened because it does not exist

    Die applicationContext.xml befinden sich in meinem src/main/resources Ordner. Dieser Ordner ist auch ein Teil des classpaths. Das habe ich mittels winRar kontrolliert. Nach dem erfolgreichen bauen des Projektes, befindet diese sich nämlich im dem root Ordner.
    Bild:
    [​IMG]

    Zudem benutze ich das maven-shade-plugin, um alle dependencies in eine jar zu packen.
    Sieht dann folgendermaßen aus:
    Code (Text):

    <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <executions>
                        <execution>
                            <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <shadedArtifactAttached>true</shadedArtifactAttached>
                                <transformers>
                                    <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                        <manifestEntries>
                                            <mainClass>com.lostforce.core.LostForceCore</mainClass>
                                        </manifestEntries>
                                    </transformer>
                                </transformers>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
     
    Die applicationContext.xml kann aufjedenfall gefunden werden! Dies habe ich mit diesem Codeschnipsel überprüft:
    Code (Text):
    System.out.println("Is null: " + (getClassLoader().getResourceAsStream("applicationContext.xml") == null));
    Diese Datei versuche ich beim starten mittels diesem Aufruf zu laden:
    Code (Text):
    context = new ClassPathXmlApplicationContext("applicationContext.xml");
    Mein Projekt sieht so aus:
    [​IMG]

    Zur Info: Wenn ich das Programm mittels "public static void main(...)" aus eclipse heraus starte, dann funktioniert es komischer weise. Liegt es nun an dem Plugin Konzept?
     
  2. Vielleicht hilft dir dieser Kurs hier weiter --> (hier klicken)
  3. LostForce
    LostForce Neues Mitglied
    Problem alleine gelöst! Da mein Projekt ein plugin ist, musste ich den vom Hauptprogramm bekannten Classloader überschreiben.
    Lösung:

    Code (Text):

    public class SpringBootstrap {
       
        private final ClassLoader classLoader = SpringBootstrap.class.getClassLoader();
       
        public ApplicationContext startupSpring() {
            ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml") {
                protected void initBeanDefinitionReader(XmlBeanDefinitionReader reader) {
                    super.initBeanDefinitionReader(reader);
                    reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_NONE);
                    reader.setBeanClassLoader(classLoader);
                    setClassLoader(classLoader);
                }
            };
            return context;
        }
    }

     
     
Die Seite wird geladen...

Kann die applicationContext.xml nicht finden - Ähnliche Themen

Kann Anbieter eines (REST) Webservice seine Konsumenten automatisch benachrichtigen?
Kann Anbieter eines (REST) Webservice seine Konsumenten automatisch benachrichtigen? im Forum XML und Co.
Datei aus unbekannten Speicherorten einlesen
Datei aus unbekannten Speicherorten einlesen im Forum Java Basics - Anfänger-Themen
Drücken der ALT-Taste wird nur bei jedem zweiten Mal erkannt
Drücken der ALT-Taste wird nur bei jedem zweiten Mal erkannt im Forum Allgemeine Java-Themen
JDBC DATE 0000-00-00 kann nicht ausgegeben werden
JDBC DATE 0000-00-00 kann nicht ausgegeben werden im Forum Allgemeine Java-Themen
Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben?
Iteratoren - Wie kann man mithilfe von Iteratoren nur jeden zweiten Wert eines TreeSets ausgeben? im Forum Allgemeine Java-Themen
Thema: Kann die applicationContext.xml nicht finden