Как прочитать статический файл при развертывании в Spring Boot - PullRequest
0 голосов
/ 23 сентября 2018

Я хочу иметь возможность развернуть мое приложение весенней загрузки только на герою.Мое приложение загружает данные из статического файла .json, который находится в моей папке ресурсов.

enter image description here

До сих пор я пробовал этот код, но это не такне работаетПочему-то я не могу прочитать данные из файла json.

    public List<Category> getAllCategories() throws FileNotFoundException
    {
       Gson gson = new Gson();
       ClassLoader classLoader = getClass().getClassLoader();
       File file = new File(classLoader.getResource("static/data/data.json").getFile());
       JsonReader reader = new JsonReader(new FileReader(file.getPath()));
       List<Category> allCategories = gson.fromJson(reader, new TypeToken<List<Category>>(){}.getType());

       return allCategories;
    }

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Поскольку data.json перемещается внутри JAR, который развернут на heroku, попробуйте использовать getResourceAsStream(path) вместо getResource().псевдокод может быть,

Gson gson = new Gson();
ClassLoader classLoader = getClass().getClassLoader();
InputStream in = classLoader.getResourceAsStream("static/data/data.json");
JsonReader reader = new JsonReader(new InputStreamReader(in));
List<Category> allCategories = gson.fromJson(reader, new TypeToken<List<Category>>(){}.getType());
0 голосов
/ 23 сентября 2018

Можете ли вы переместить папку данных непосредственно в ресурсы, так как здесь может возникнуть конфликт статического пути к ресурсам, и использование ниже должно работать.

File file = new File(classLoader.getResource("data/data.json").getFile());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...