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:
Zudem benutze ich das maven-shade-plugin, um alle dependencies in eine jar zu packen.
Sieht dann folgendermaßen aus:
Die applicationContext.xml kann aufjedenfall gefunden werden! Dies habe ich mit diesem Codeschnipsel überprüft:
Diese Datei versuche ich beim starten mittels diesem Aufruf zu laden:
Mein Projekt sieht so aus:
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?
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:

Zudem benutze ich das maven-shade-plugin, um alle dependencies in eine jar zu packen.
Sieht dann folgendermaßen aus:
Code:
<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:
System.out.println("Is null: " + (getClassLoader().getResourceAsStream("applicationContext.xml") == null));
Code:
context = new ClassPathXmlApplicationContext("applicationContext.xml");
Mein Projekt sieht so aus:

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?