如何配置 RESTTemplate 以使用 Jackson 的 @JsonDeserialize 反序列化响应 Json?
我的域类基于 Builder Pattern 和 jackson 的 @JsonDeserialize marshall 和 unmarshall 在单元测试中很好。但是,当与 Spring 的 RESTTemplate (Spring 3.1) 结合使用时,它会失败。
领域类:
@JsonDeserialize(builder = Policy.Builder.class) public final class Policy 实现 Comparable, Serializable { // 不可变属性 私人政策(建造者建造者){ ... } @JsonIgnoreProperties(ignoreUnknown = true) 公共静态类生成器{ /// 使用XXX方法 公共政策构建(){ 返回新政策(本); } } }
单元测试中的 Spring RESTTemplate 代码:
策略策略 = new Policy.Builder().withXXX()...build(); restTemplate.postForObject("http://localhost:8080/policies/policy.json", policy, String.class);
RestTemplate#doExecute() 中的错误 - 第 436 行:
org.springframework.web.client.HttpServerErrorException:500 无法实例化 bean 类 [xxx.domain.Policy]:未找到默认构造函数;嵌套异常是 java.lang.NoSuchMethodException: xxx.domain.Policy.()