好的,我遇到的问题是我可以使用RestTemplate成功进行调用。请求在服务器端成功完成。
但是,当它在客户端设置时,值不会被正确分配。下面的第一个类是应该由Post调用填充的客户端。第二个类是服务器用来发送它的类。
我认为我的问题出现是因为服务器发送的JSON格式。它看起来像下面的内容。
{ "record":{"firstName":"Bill", "lastName":"Johnson", "role":6}}
Spring无法自动将其映射到客户端POJO。有没有办法解决这个问题,而无需更改服务器端代码?
谢谢。
EmployeeResponse response = restTemplate.postForObject(uri, request, EmployeeResponse.class );
//(Client Side)
public class EmployeeResponse {
private String firstName;
private String lastName;
private int role;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName= firstName;
}
public String getLastName() {
return longKey;
}
public void setLastName(String lastName) {
this.lastName= lastName;
}
public int getRole() {
return role;
}
public void setRole(int role) {
this.role = role;
}
}
//(Server-Side)
public class EmployeeResponse {
private EmployeeRecord record;
public String getFirstName() {
return record.getFirstName();
}
public String getLastName() {
return record.getLastName();
}
public int getRole() {
return record.getRole();
}
public ELAActivationResponse(EmployeeRecord record) {
this.record = record;
}
}
答案 0 :(得分:0)
这是因为服务器响应包含根元素record
而客户端对象没有,因此无法封送响应。
您需要使用EmployeeResponse
@JsonRootName(value = "record")
)添加注释