1
如何配置RESTTemplate以反序列化響應Json使用Jackson的@JsonDeserialize?如何使用Builder Pattern和@JsonDeserialize反編譯Spring RestTemplate響應json
我的領域類基於Builder模式和傑克遜的@JsonDeserialize馬歇爾和單位測試unmarshall罰款。但是,當與Spring的RESTTemplate(Spring 3.1)結合使用時,它會失敗。
域類:
@JsonDeserialize(builder = Policy.Builder.class) public final class Policy implements Comparable, Serializable { // immutable attributes private Policy(Builder builder) { ... } @JsonIgnoreProperties(ignoreUnknown = true) public static class Builder { /// withXXX methods public Policy build() { return new Policy(this); } } }
彈簧RESTTemplate代碼在單元測試:在RestTemplate#doExecute()
Policy policy = new Policy.Builder().withXXX()...build(); restTemplate.postForObject("http://localhost:8080/policies/policy.json", policy, String.class);
錯誤 - 線436:
org.springframework.web.client.HttpServerErrorException: 500 Could not instantiate bean class [xxx.domain.Policy]: No default constructor found; nested exception is java.lang.NoSuchMethodException: xxx.domain.Policy.()