使用RestTemplate.exchange访问其他的服务,然后反序列化为实体类的时候抛出异常,异常信息如下:
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: xxxxxxx
出现该异常的原因是由于我这两个服务中的字段个数或者名称不一致造成的,解决办法主要有以下两种:
- 接收的实体类中添加如下所示注解:
@JsonIgnoreProperties(ignoreUnknown = true)
- 在ObjectMapper中生成实体类对象时添加如下配置:
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
例如:
ResponseEntity<String> res = restTemplate.exchange(xxxxxx);
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
A a=mapper.readValue(s, A.class);