Используя пружинный контроллер, конечная точка возвращает файл в ответе тела.Я хочу быть уверенным, что не получаю утечку ресурсов, используя "try with resources", но таким образом в почтальоне я получаю ошибку:
"error": "Internal Server Error", "message":" Поток закрыт ",
фрагмент кода в контроллере Spring:
InputStreamResource result;
ResponseEntity<Resource> response;
try(FileInputStream ios = new FileInputStream(file)){
result = new InputStreamResource(ios);
response = ResponseEntity.ok()
.headers(/*some headers here*/)
.contentLength(file.length())
.contentType(/*some media type here*/)
.body(result);
logger.info("successfully created");
return response;
} catch (IOException e) {
//some code here..
}
Интересно, что в логах я получаю сообщение об успехе, но в почтальоне или в браузере (этоэто запрос GET) Я получил ошибку.
И это сработало бы, если бы не использовать "try-with-resource", но я боюсь утечек ресурсов таким образом.