CommonsMultipartResolver 和 spring session 互相干扰

CommonsMultipartResolver and spring session disturb each other

在spring boot

中有multi part config的配置
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver resolver = new CommonsMultipartResolver();
resolver.setDefaultEncoding("utf-8");
resolver.setMaxInMemorySize(20480);
resolver.setMaxUploadSize(2048000000);
return resolver;
}

添加下面的依赖就可以了,成功了

           <dependency>
                <groupId>org.springframework.session</groupId>
                <artifactId>spring-session</artifactId>
            </dependency>

引发了以下异常:

[ERROR] org.springframework.web.multipart.support.MissingServletRequestPartException: Required request part 'file' is not present Required request part 'file' is not present

哪里错了?

编辑:

相关控制器:

@RequestMapping(value={"/save"}, method={org.springframework.web.bind.annotation.RequestMethod.POST})
  @ResponseBody
  public FileProviderDto save(@RequestParam("file") MultipartFile file, @RequestParam String fileCode)
     throws IOException, SQLException
   {

我添加了这个配置并且工作正常。

@Bean
public CommonsMultipartResolver multipartResolver() {
    CommonsMultipartResolver resolver = new CommonsMultipartResolver();
    resolver.setDefaultEncoding("utf-8");
    resolver.setMaxInMemorySize(20480);
    resolver.setMaxUploadSize(2048000000);
    return resolver;
}

@Bean
@Order(0)
public MultipartFilter multipartFilter() {
    MultipartFilter multipartFilter = new MultipartFilter();
    multipartFilter.setMultipartResolverBeanName("multipartResolver");
    return multipartFilter;
}

并像这样跳过 MultipartAutoConfiguration.class:

@SpringBootApplication(exclude = { MultipartAutoConfiguration.class })