当前位置: 首页 > 知识库问答 >
问题:

异常:com.fasterxml.jackson.databind.exc.invaliddefinitionexception:MultipartFile

蔺翰音
2023-03-14

我在SpringBoot中使用ReactJS前端,得到了上面的错误。此错误的根本原因是DTO中的MultiPartFile,我使用它从post请求中获取数据到后端。

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

    private MultipartFile imgFile;

    private int itemQuantity;

    private String shortDescription;

    private String longDescription;
}

com.fasterxml.jackson.databind.exc.InvalidDefinitionException:无法构造org.springframework.web.multipart.multipartfile的实例(没有像默认构造一样的创建者存在):抽象类型需要映射到具体类型、具有自定义反序列化器或包含附加类型信息

Reactjs前端的代码:从“ReactStrap”导入{Button,Form,FormGroup,Label,Input,FormText};

<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个答案

微生旻
2023-03-14

第一次检查尝试使用最新版本。

解决方案1。

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

解决方案2。

>

  • @bean public MappingJackson2HttpMessageConverter MappingJackson2HttpMessageConverter(){ObjectMapper mapper=new ObjectMapper();mapper.configure(Serializationfeature.fail_on_empty_beans,false);MappingJackson2HttpMessageConverter转换器=new MappingJackson2HttpMessageConverter(mapper);返回转换器;}

  •  类似资料:
    • 应用程序通常会通过抛出另一个异常来响应异常。 实际上,第一个异常引起第二个异常。 它可以是非常有助于用户知道什么时候一个异常导致另一个异常。 “异常链(Chained Exceptions)”帮助程序员做到这一点。 以下是Throwable中支持异常链的方法和构造函数。 Throwable getCause() Throwable initCause(Throwable) Throwable(St

    • 你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个Error或Exception类的直接或间接导出类。 如何引发异常 例13.2 如何引发异常 #!/usr/bin/python # Filename: raising.py classShortInputException(Exception):     '''A u

    • 问题内容: 异常存储在哪里?堆,堆。如何为异常分配和释放内存?现在,如果您有多个需要处理的异常,是否创建了所有这些异常的对象? 问题答案: 我假设为异常分配的内存分配方式与所有其他对象(在堆上)分配方式相同。 这曾经是个问题,因为您不能为OutOfMemoryError分配内存,这就是直到Java 1.6之前 才没有堆栈跟踪的原因。现在,它们也为stacktrace预分配了空间。 如果您想知道在抛

    • 因为Java编程语言不需要捕获方法或声明未检查异常(包括 RuntimeException、Error及其子类),程序员可能会试图编写只抛出未检查异常的代码,或使所有异常子类继承自RuntimeException。这两个快捷方式都允许程序员编写代码,而不必担心编译器错误,也不用担心声明或捕获任何异常。虽然这对于程序员似乎很方便,但它避开了捕获或者声明异常的需求,并且可能会导致其他人在使用您的类而产

    • 当面对选择抛出异常的类型时,您可以使用由别人编写的异常 - Java平台提供了许多可以使用的异常类 - 或者您可以编写自己的异常类。 如果您对任何以下问题回答“是”,您应该编写自己的异常类;否则,你可以使用别人的。 你需要一个Java平台中没有表示的异常类型吗? 如果用户能够区分你的异常与由其他供应商编写的类抛出的异常吗? 你的代码是否抛出不止一个相关的异常? 如果您使用他人的例外,用户是否可以访

    • 异常 对于异常处理,倾向使用 raise 而不是 fail。 # 差 fail SomeException, 'message' # 好 raise SomeException, 'message' 不要在带双参数形式的 raise 方法中显式指定 RuntimeError。 # 差 raise RuntimeError, 'message' # 好 - 默认就是 RuntimeError rai