2016-10-28 3 views
1

좋아, 내가 겪고있는 문제는 내가 성공적으로 RestTemplate을 사용하여 전화를 걸 수 있다는 것입니다. 요청은 서버 측에서 성공적으로 완료됩니다.봄 RestTemplate 응답 값 모두 null

그러나 클라이언트 측에서 설정되면 값이 올바르게 할당되지 않습니다. 아래 첫 번째 클래스는 포스트 호출에 의해 채워 져야하는 클라이언트 측입니다. 두 번째 클래스는 서버가 전송하는 데 사용되는 클래스입니다.

서버가 전송하는 JSON 형식 때문에 문제가 발생한다고 생각합니다. 아래 보이는 것과 같습니다.

{ "record":{"firstName":"Bill", "lastName":"Johnson", "role":6}} 

스프링은이를 클라이언트 측 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

이 때문에 서버 응답은 루트 요소 record와 포장 및 클라이언트 개체를하지 않기 때문에 응답을 마샬링 할 수는 없기 때문에.

당신은 @JsonRootName(value = "record")

로 응답 객체 클래스 ( EmployeeResponse를) 주석 필요
관련 문제