Il y a un fichier JSON dans ma guerre à l'emplacement suivantImpossible de charger un fichier à l'emplacement WEB-INF
WEB-INF/classes/META-INF/jsonFolder/file.json
Je suis en train d'accéder au fichier en utilisant le chemin et la méthode suivante pour charger mon fichier.
public static File deserializeJSONFile() throws IOException {
File file = null;
OutputStream outStream = null;
String jsonPath = "jsonFolder/file.json";
try (InputStream inputStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(jsonPath)) {
in = inputStream;
if (in != null) {
byte[] bufferArray = new byte[in.available()];
in.read(bufferArray);
file = new File("tempJsonFile.json");
outStream = new FileOutputStream(file);
outStream.write(bufferArray);
}
} finally {
if (outStream != null) {
outStream.close();
}
}
if (null == in) {
String errorMessage = "JSON file: " + jsonPath + " could not be loaded";
FileNotFoundException fileNotFoundException = new FileNotFoundException(errorMessage);
logger.error(errorMessage, fileNotFoundException);
throw fileNotFoundException;
}
return file ;
}
avec lequel passent tous mes tests unitaires. Au déploiement de mon application, je vois l'exception de fichier non trouvé pour jsonFolder/file.json. Lorsque j'ai tracé l'emplacement réel comme où il cherche, il regarde,
C:\Program Files\eclipse-mars\jsonFolder\file.json
ce qui est incorrect. J'ai essayé différentes méthodes de classloader mais cela n'a pas aidé. Une règle est que je ne devrais pas modifier pom.xml pour que cela fonctionne. Comment puis-je charger le fichier?
Pouvez-vous nous indiquer le code approprié? Ce code ne compile pas, étant donné qu'il manque '' 's' 's' '' 's' –
Ajout du code – yellow
Ce n'est pas encore valide: 'String jsonPath = jsonFolder/file.json' –