具有Spring会话和Redis的Spring Boot 2.1.6-无法序列化BindingResult对象

时间:2019-07-23 13:12:32

标签: spring-boot spring-mvc spring-data-redis spring-session

全部。

昨天我将Spring Boot 2.0以及Spring会话和spring-boot-starter-data-redis一起更新为2.1.6。在更新之前,我没有这类问题。 我想将我的错误从提交的表单重定向到另一个页面以显示它们。 我有以下控制器

@Secured({"ROLE_ADMIN"})
    @RequestMapping(value = "/new", method = RequestMethod.POST)
    public String newExhibitor(Model model, @Valid ExhibitorList newExhibitor, BindingResult result, RedirectAttributes attr) {
        if (result.hasErrors()) {
            attr.addFlashAttribute("org.springframework.validation.BindingResult.newExhibitor", result);
            attr.addFlashAttribute("newExhibitor", newExhibitor);
            return "redirect:/exhibitor/view";
        }
        exhibitorListRepository.save(newExhibitor);
        return "redirect:/exhibitor/new";
    }

如果表单有错误,则用户将被重定向到/ exhibitor / view,其中将显示错误。问题是,当我提交表单时,我会得到

  

无法序列化;嵌套异常为   org.springframework.core.serializer.support.SerializationFailedException:   无法使用DefaultSerializer序列化对象;嵌套异常   是java.io.NotSerializableException:   org.springframework.validation.beanvalidation.LocalValidatorFactoryBean   org.springframework.data.redis.serializer.SerializationException:   无法序列化;嵌套异常为   org.springframework.core.serializer.support.SerializationFailedException:   无法使用DefaultSerializer序列化对象;嵌套异常   是java.io.NotSerializableException:   org.springframework.validation.beanvalidation.LocalValidatorFactoryBean

来自

attr.addFlashAttribute("org.springframework.validation.BindingResult.newExhibitor", result);

特别是BindingResult结果。当我从属性中删除该对象时,没有例外,但是我也没有字段错误。 我的每个实体都实现了Serializable,因此它不是来自于我的任何对象。

**更新 我测试了2.2.0(SNAPSHOT)版本,那里没有错误。

0 个答案:

没有答案