I am using Spring with Maven and I would like to load a file contained in the maven folder src/main/resources inside a spring service annotated with @Service contained in a JAR file (used by another WAR file as a Maven dependency). This does not seem to work for many different reasons (read: for many different exceptions according to many different attempts).
- I know that Maven, when building, puts the stuff in
src/main/resourcesat the root of theJARfile. I've opened theJARfile and I've verified that. - I would prefer a
Fileobject (something I can use with utility libraries like Apache Commons IO), but also "something" else that's working is fine. - I would prefere going for stuff within the Java class annotated with
@Service(i.e. no application context XML file, with stuff inside that I recall within the service etc.) - The file contains stuff that I eventually use as a
List<String>where every item is a line in the original file. I need to keep this file as it is, I can not use a database or another solution different than a file. - This is not a
.propertiesfile and is not intended to be.
The following are the not working attempts (throwing NullPointerException, FileNotFoundException, IllegalArgumentException: URI is not hierarchical and so on...).
Among the attempts I have tried also adding/removing the prefix src/main/resources while trying to figure out what was wrong, but then I figured out that Maven puts all the stuff at the root of the JAR file as stated before.
@Value("classpath:src/main/resources/myFile.txt")
private Resource myFileResource;
private File myFile =
new File(this.getClass().getResource("/myFile.txt").toURI());
private File myFile =
new FileSystemResource("src/main/resources/myFile.txt").getFile();
private BufferedReader bufferedReaderMyFile =
new BufferedReader(
new InputStreamReader(getClass().getResourceAsStream("myFile.txt")));
What's wrong with what I am doing?