Lire le fichier du dossier des ressources dans Spring Boot
Je suis en utilisant le Printemps de Démarrage et json-schema-validator
. J'essaie de lire un fichier appelé jsonschema.json
de la resources
dossier. J'ai essayé plusieurs façons mais je ne peux pas le faire fonctionner. C'est mon code.
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource("jsonschema.json").getFile());
JsonNode mySchema = JsonLoader.fromFile(file);
C'est l'emplacement du fichier.
Et ici, je peux voir le fichier dans le classes
dossier.
Mais lorsque j'exécute le code, j'obtiens l'erreur suivante.
jsonSchemaValidator error: java.io.FileNotFoundException: /home/user/Dev/Java/Java%20Programs/SystemRoutines/target/classes/jsonschema.json (No such file or directory)
Qu'est-ce que je fais mal dans mon code?
source d'informationauteur g3blv | 2017-06-06
Vous devez vous connecter pour publier un commentaire.
Réponse courte: vous êtes à la recherche de votre bien dans le champ d'application d'un chargeur de classe au lieu de vous la cible de la classe. Cela devrait fonctionner:
Aussi, voir ceci:
P. S. il y a peut être un problème si le projet a été compilé sur une machine, et après qui a été lancée sur une autre ou si vous exécutez votre application dans le Panneau. Dans ce cas, les chemins d'accès à votre dossier de ressources peut être invalide. Dans ce cas, il serait préférable de déterminer les chemins d'accès à vos ressources lors de l'exécution:
Après avoir passé beaucoup de temps à essayer de résoudre ce problème, enfin trouvé une solution qui fonctionne. La solution fait usage du Printemps ResourceUtils.
Devrait fonctionner pour des fichiers json.
Merci pour le bien page écrite par Lokesh Gupta : Blog
coincé dans le même numéro, cela m'aide
créer json dossier de ressources en tant que sous-dossier, puis ajouter un fichier json dans le dossier, alors vous pouvez utiliser ce code :
import com.fasterxml.jackson.core.type.TypeReference;
InputStream is = TypeReference.class.getResourceAsStream("/json/fcmgoogletoken.json");
cela fonctionne dans le Panneau.