Вернуть ByteArrayResource в весеннем ответе restcontrollerJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Вернуть ByteArrayResource в весеннем ответе restcontroller

Сообщение Anonymous »

Я пытаюсь загрузить файл с помощью restController, но он всегда возвращает эту ошибку:

Код: Выделить всё

 java.io.FileNotFoundException: Byte array resource [resource loaded from byte array] cannot be resolved to URL
at org.springframework.core.io.AbstractResource.getURL(AbstractResource.java:90) ~[spring-core-4.2.2.RELEASE.jar:4.2.2.RELEASE]
затем он загружает файл, который имеет что-то вроде этого:

Код: Выделить всё

  {"byteArray":"JVBERi0xLjQKJeL....
вот мой restController:

Код: Выделить всё

@Api("products")
@RestController
@RequestMapping("/v1/products")
public class DocumentApi extends storeApi {
@ApiOperation("GET download document")
@RequestMapping(value = "/temp", method = RequestMethod.GET)
@ResponseStatus(code = HttpStatus.OK)
public ResponseEntity downloadDocument(
@RequestParam(value = "id", required = true) Long idInscription) throws IOException {
String signedFilePAth = "C:/APPLIS/signedTemp/5982312957957647037_signed.pdf"
return ResponseEntity
.ok()
.contentLength(contentLength)
.contentType(
MediaType.parseMediaType("application/pdf"))
.body(new
ByteArrayResource(Files.readAllBytes(Paths.get(signedFilePAth))));
}
}
и вот моя пружинная конфигурация:

Код: Выделить всё

protected MappingJackson2HttpMessageConverter jacksonMessageConverter() {
MappingJackson2HttpMessageConverter messageConverter = new MappingJackson2HttpMessageConverter();
ObjectMapper mapper = new ObjectMapper();
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
// Registering Hibernate4Module to support lazy objects
mapper.registerModule(new Hibernate4Module());
messageConverter.setObjectMapper(mapper);
return messageConverter;
}

public ByteArrayHttpMessageConverter byteArrayHttpMessageConverter() {
ByteArrayHttpMessageConverter arrayHttpMessageConverter = new ByteArrayHttpMessageConverter();
arrayHttpMessageConverter.setSupportedMediaTypes(getSupportedMediaTypes());
return arrayHttpMessageConverter;
}

private List getSupportedMediaTypes() {
List list = new ArrayList();
list.add(MediaType.APPLICATION_OCTET_STREAM);
list.add(MediaType.parseMediaType("application/pdf"));
return list;
}

@Override
public void configureMessageConverters(List

Подробнее здесь: [url]https://stackoverflow.com/questions/49916772/return-bytearrayresource-in-spring-restcontroller-response[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»