Невозможно создать экземпляр `org.springframework.web.multipart.MultipartFile` - PullRequest
0 голосов
/ 20 июня 2019

В моем Spring Boot API я создаю конечную точку для изменения фотографии обложки. Я отправляю файл с некоторыми данными из внешнего интерфейса как ChangeCoverRequest объект. Однако при отправке запроса Spring Boot выдает следующую ошибку .

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: невозможно построить экземпляр org.springframework.web.multipart.MultipartFile (без создателей, как конструкция по умолчанию, существует): абстрактные типы либо должны быть сопоставлены конкретные типы, имеют собственный десериализатор или содержат дополнительный тип информация

Я знаю, что поле private MultipartFile cover является причиной этой ошибки, но я не знаю, как построить ChangeCoverRequest таким образом, чтобы эта ошибка не выкидывалась.

Заранее спасибо.

ChangeCoverRequest

public class ChangeCoverRequest {
    private Long userId;

    private Long groupId;


    private MultipartFile cover;

    public ChangeCoverRequest() {

    }

    public ChangeCoverRequest(Long userId, Long groupId, MultipartFile cover) {
        super();
        this.userId = userId;
        this.groupId = groupId;
        this.cover = cover;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getGroupId() {
        return groupId;
    }

    public void setGroupId(Long groupId) {
        this.groupId = groupId;
    }

    public MultipartFile getCover() {
        return cover;
    }

    public void setCover(MultipartFile cover) {
        this.cover = cover;
    }
}

изменить конечную точку крышки

 @PostMapping("/group/change-cover")
  public void changeGroupCoverPhoto(@RequestBody ChangeCoverRequest changeCovReq) {
     String fileName = fileService.storeFile(changeCovReq.getCover());

       String fileDownloadUri = ServletUriComponentsBuilder.fromCurrentContextPath()
               .path("/api/downloadFile/")
               .path(fileName)
               .toUriString();

       UploadFileResponse response =  new UploadFileResponse(fileName, fileDownloadUri,
               changeCovReq.getCover().getContentType(), changeCovReq.getCover().getSize());
       Group group = groupService.getGroup((long)changeCovReq.getUserId()).get();
       group.setCoverPhoto(response.getFileDownloadUri());
       groupRepository.save(group);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...