Исключение: com.faster xml .jackson.databind.ex c .InvalidDefinitionException: MultipartFile - PullRequest
0 голосов
/ 13 января 2020

Я использую ReactJS интерфейс с SpringBoot, и я получаю вышеуказанную ошибку. root Причиной этой ошибки является MultiPartFile в DTO, который я использую для получения данных из почтового запроса в серверную часть.

@Getter
@Setter
public class ItemDTO {
    private long craftId;

    private MultipartFile imgFile;

    private int itemQuantity;

    private String shortDescription;

    private String longDescription;
}

Вложенное исключение:

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

код из Reactjs интерфейса с: import {Button, Form, FormGroup, Label, Input, FormText} из 'responsestrap';

<FormGroup>
     <Label for="exampleFile">File</Label>
     <Input type="file" name="file" onChange={this.fileChangedHandler} id="exampleFile" />
</FormGroup>
fileChangedHandler = (event) => {
    this.setState({ image: event.target.files[0] })

}

console.log полезной нагрузки:

image: File
name: "1605baeba66180d5337f41d9c80617a9.jpg"
lastModified: 1578835072895
lastModifiedDate: Sun Jan 12 2020 18:47:52 GMT+0530 (India Standard Time) {}
webkitRelativePath: ""
size: 45002
type: "image/jpeg"
__proto__: File

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 13 января 2020

Первая проверка с последней версией.

Решение 1.

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.4</version>
</dependency>

Решение 2.

  1. Установить spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false in application.properties

    или

    1. @ Bean publi c MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter () {ObjectMapper mapper = new ObjectMapper (); mapper.configure (SerializationFeature.FAIL_ON_EMPTY_BEANS, false); MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter (mapper); обратный преобразователь; }

...