Spring-Boot Ressource introuvable lors de l'utilisation de Jar exécutable

de nouveau, je fais face à un étrange problème et espère que quelqu'un ici peut vous aider.

J'ai un ressort de démarrage module backend, ce qui fonctionne dans eclipse et l'application est exécutable lors du démarrage principal dans application.java. Tout d'amende.

Mon application qui rend l'importation de données de l'exemple de base de données au format csv fichiers de ce qui est inclus dans src/main/resources dossier. Comme mentionné, lors du démarrage dans eclipse tout fonctionne.

Maintenant, je voudrais exécuter en tant que fichier exécutable jar, l'application commence à démarrer et puis il n'a pas pu démarrer, car il ne peut pas trouver les fichiers csv. Le chemin qu'il imprime, où il a regardé pour les fichiers, est correcte et les fichiers csv sont dans le pot inclus.

Le Pom du module ressemble comme suit:

<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>at.company.bbsng</groupId>
<artifactId>bbsng-import</artifactId>
<version>0.1.0-SNAPSHOT</version>
</parent>
<artifactId>bbsng-import-backend</artifactId>
<name>bbsng-import-backend</name>
<properties>
<start-class>at.company.bbsng.dataimport.Application</start-class>
</properties>
<dependencies>
<!-- SPRING ... -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-batch</artifactId>
<!-- EXCLUDE LOGBACK AND USE LOG4J -->
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-logging</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- COMMONS ... -->
...
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

Chemin d'accès à un chier csv fichiers sont configurés dans propery fichiers comme suit:

# EXAMPLE PATH
csv.path=config/csv/

La partie de java fichier de configuration est comme suit:

  ...
@Value("${csv.path}")
private String csvExamplePath;
@Bean
public Resource addressResource() {
return new ClassPathResource(csvExamplePath + CSV_ADDRESS);
}
...

Dans le bocal les fichiers sont situés dans le chemin

\config\csv\

Stacktrace:

Caused by: java.io.FileNotFoundException: class path resource [config/csv/Company.csv] cannot be resolved to absolute file path because it does not reside in th
e file system: jar:file:/C:/Development/Projekte/bbsng/trunk/import/backend/target/bbsng-import-backend-0.1.0-SNAPSHOT.jar!/config/csv/Company.csv
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:207)
at org.springframework.core.io.AbstractFileResolvingResource.getFile(AbstractFileResolvingResource.java:52)
at at.compax.bbsng.dataimport.app.source.company.CompanyGenerator.init(CompanyGenerator.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java

Encore une fois, l'application fonctionne comme prévu lors du démarrage à partir d'eclipse, seul exécutable jar se plaint de manque csv fichiers, quels sont dans le bocal déjà.

Aucune idée serait génial.

OriginalL'auteur Michael Hegner | 2014-10-03