@JsonDeserialize导致HTTP 415

时间:2016-12-09 22:05:13

标签: spring spring-boot jackson json-deserialization

我有一个Spring Boot应用程序,我为我的一个实体编写了一个自定义反序列化程序。我已经向实体添加了@JsonDeserialize(using = GuestOrderDeserializer.class),现在,只要我尝试访问任何必须反序列化数据的端点,即使它与GuestOrder无关,我也会返回http状态415。

但是,如果我像这样添加反序列化器:

@Bean
public MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {
    ObjectMapper mapper = new ObjectMapper();
    SimpleModule simpleModule = new SimpleModule();
    simpleModule.addDeserializer(GuestOrder.class, new GuestOrderDeserializer());
    mapper.registerModule(simpleModule);
    return new MappingJackson2HttpMessageConverter(mapper);
}

然后它工作得很好。也就是说,这会导致其他地方出现问题,所以我想在适当的实体上使用@JsonDeserializer。我只是不知道为什么会导致415

1 个答案:

答案 0 :(得分:0)

所以我不知道为什么会有详细的细节,但基本上因为我正在进行自定义反序列化,我有几个使用@JsonManagedRefernece注释的集合属性并删除它们解决了这个问题。错误消息暗示我没有处理我的自定义反序列化器中的那些,我觉得很奇怪。但TL; DR删除那些解决了问题,没有副作用,因为我将@JsonBackReference保留在子实体中。