Выдает ошибку java.lang.NullPointerException: null
Вот код метода:
@Override
public void accountImport(String fileName, AccountDto accountDto) {
try(FileWriter writer = new FileWriter(fileName, false))
{
Integer id = accountDto.getId();
String stId= id.toString();
Long number = accountDto.getNumber();
String stNumber = number.toString();
String date = accountDto.getDate();
String beneficiary = accountDto.getBeneficiary();
String comment = accountDto.getComment();
Long amount = accountDto.getAmount();
String stAmount = amount.toString();
String currency = accountDto.getCurrency();
String finall = stId+","+stNumber+","+date+","+beneficiary+","+comment+","+stAmount+","+currency;
for (int i = 0; i < finall.length(); i++)
writer.write(finall.charAt(i));
} catch (IOException e) {
throw new ValidateException("ERROR");
}
}
Вот код контроллера:
@PostMapping("/import")
public ResponseEntity importAccount(@RequestParam(name = "fileName",required = false) String fileName, @RequestBody AccountDto accountDto){
accountServiceImport.accountImport(fileName,accountDto);
return new ResponseEntity(HttpStatus.OK);
}
Вот запрос в Postman:
{
"fileName": "C:\\Users\\Admin\\Documents\\task\\text.csv",
"account":{
"id": 0,
"number": 84822,
"date": "2022-04-06 22:58 ",
"beneficiary": "Bob",
"comment": "For",
"amount": 8482200,
"currency": "USA"
}
}
Ответы (1 шт):
Могу предположить, что вы неправильно пользуетесь постманом (RequestParam надо передавать в другой вкладке). Из-за этого не передается имя файла и FileWriter не может его открыть. Ниже я привел пример скриншотов, как надо сформулировать ваш запрос в Postman.
P.S В логе, который вы скинули написано, что в запросе присутствуют символы, которые нельзя использовать. Чтобы разрешить их использование, добавьте в файл конфигурации application.yaml следующие строки:
server:
relaxed-query-chars: \
Похожий вопрос: https://stackoverflow.com/questions/54287922/the-valid-characters-are-defined-in-rfc-7230-and-rfc-3986
Также можете попробовать вместо url ввести закодированный вариан строки: C%3A%5C%5CUsers%5C%5CAdmin%5C%5CDocuments%5C%5Ctask%5C%5Ctext.csv.

