Я работаю в проекте, где мне нужно получить данные из изображения с помощью ocr.
Я использую ocr третьими лицами, где я могу загрузить файл и получить данные из ocr.
Мне нужно вызывать этот API с помощью весенней загрузки. Этот API-интерфейс является multipart / form-data.
Я создал функцию, которая принимает файл и пытается создать запрос на публикацию файла на внешний API.
Я получаю ошибку
"message": "Type definition error: [simple type, class java.io.FileDescriptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain:
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile[\"inputStream\"]->java.io.FileInputStream[\"fd\"])",
Метод контроллера :
@PostMapping(value = "/ocrImage")
public ResponseEntity<GenericResponse> ocrImage(@RequestParam("file") MultipartFile file) {
Object ocrDataImage = ocrService.ocrImage(file);
return ResponseBuilder.buildResponse(ocrDataImage , 0, "");
}
Услуга называется
public Object ocrImage(MultipartFile file) {
// adding headers to the api
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
headers.set("x-key", API_KEY);
MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", file);
HttpEntity<MultiValueMap<String, Object>> requestEntity= new HttpEntity<>(body, headers);
RestTemplate restTemplate = new RestTemplate();
Object result = restTemplate.postForEntity(EXTERNAL_API_ENDPOINT, requestEntity,
String.class);
System.out.println(result);
return result;
}
Когда вызывается postForEntity, я получаю ошибку, упомянутую выше.
Дайте мне знать, если вам нужно больше деталей.