Я пытаюсь установить связь между двумя микро, где первый получает петицию от внешнего интерфейса и связывается с другим микро, который создает файл Excel и отправляет его обратно на первый микро, начиная загрузку файла .
Сначала я попытался напечатать простой ответ String, чтобы проверить связь между микроэлементами, и это работало правильно, но то же самое для файлов не сработало.
Вот код, которому я следую:
Для контроллера A:
@GetMapping(path="/test")
public void getEntities2(HttpServletRequest request, HttpServletResponse response) throws IOException {
ResponseEntity<Workbook> responseEntity = new RestTemplate()
.getForEntity("http://localhost:8080/proceso/excel", Workbook.class);
assertThat(responseEntity.getStatusCode(), equalTo(HttpStatus.OK));
response.setHeader("Content-disposition", "attachment; filename=" + "test.xls");
Workbook workbook = responseEntity.getBody();
workbook.write(response.getOutputStream());
workbook.close();
}
Второй контроллер (генератор файлов Excel):
@GetMapping(path="/excel")
public ResponseEntity<Workbook> test3(HttpServletResponse response) throws Exception {
HashMap<String, ArrayList<String>> test = new HashMap<String, ArrayList<String>>();
Workbook workbook = CreateExcel.excelCreator(test);
Workbook responseFile = workbook;
return ResponseEntity.ok()
.header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + "test.xls")
.contentType(MediaType.MULTIPART_FORM_DATA)
.body(responseFile);
}
И тогда появляется следующая ошибка:
org.springframework.web.client.HttpClientErrorException$NotAcceptable: 406 null
Я просто хочу получить файл в первом контроллере и загрузить Excel с localhost. Есть ли способ сделать это? Спасибо всем.