Пример:
Извлекает все продукты
http://localhost:8080/api/v2/products/allproducts
Поток API:
- Получает все продукты;
Создает новый временный_файл; - Записывает в новый временный_файл;
- Сохраняет информацию в файле и возвращает ее;
Удаляет временный_файл;
Когда я развертываю API в Heroku, я получаю внутреннюю ошибку сервера 500 «java.io.FileNotFoundException» (такого нет). файл или каталог) - блок catch вызова
(Подробнее читайте ниже)
dyno=web.1 connect=0ms service=4ms status=500 bytes=871 protocol=https 2023-03-20T22:04:36.792371+00:00 app[web.1]: Unable to create tempfile 2023-03-20T22:04:36.792387+00:00 app[web.1]: java.io.FileNotFoundException: ./src/main/java/org/test/resources/temp_allproducts.json (No such file or directory) 2023-03-20T22:04:36.792523+00:00 app[web.1]: at java.io.FileOutputStream.open0(Native Method) 2023-03-20T22:04:36.792524+00:00 app[web.1]: at java.io.FileOutputStream.open(FileOutputStream.java:270) 2023-03-20T22:04:36.792533+00:00 app[web.1]: at java.io.FileOutputStream.(FileOutputStream.java:213) 2023-03-20T22:04:36.792534+00:00 app[web.1]: at java.io.FileOutputStream.(FileOutputStream.java:162) (...)
Интересно, отличается ли путь к файлу в Heroku или я просто что-то не делаю в приведенном примере потока.
Я' Я оставлю вам образец того, как я создаю этот временный файл.
private static File makeTempFile(String data, String fileName) {
File file = new File(BASE_PATH + "temp_" + fileName+ ".json");
try (FileWriter writer = new FileWriter(file)) {
writer.write(formatJson(data));
System.out.println(BASE_PATH + "temp_" + fileName + ".json" + " created");
return file;
} catch (Exception e) {
System.out.println("Unable to create tempfile");
e.printStackTrace();
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/757 ... t-java-api
Мобильная версия