2013-03-14 3 views
0

우리는 저지, 잭슨 및 스프링 서비스 (@ 서비스) 주석을 사용하여 일부 REST 기반 웹 서비스를 노출합니다. 요청 및 응답 데이터는 JSON 형식으로 교환됩니다.저지 잭슨 및 스프링 서비스

public class ServiceRequest{ 
    private RequestHeader requestHeader; 
    private List<BaseEntity> requestData; 
} 

모든 특정 엔티티가 BaseEntity 클래스에서 확장됩니다

다음은 서비스 요청 개체 콘텐츠입니다. 예를 들면 다음과 같습니다.

모든 서비스 운영에 대해 우리는 요청 데이터 객체 목록을 전달하여 ServiceRequest 객체 만 허용합니다. 우리는 REST 클라이언트에서 이러한 작업을 호출 할 때 지금, 이들은

userName is not found as part of BaseEntity. 

변환하는 동안, 뉴저지/잭슨이 지정된 개체의 속성을 입력 필드 이름을 자동으로 감지하기 때문에이은으로 실패.

내가 알고 싶은 것은 어떤 방법이든, 나는 이것을 지적인 방식으로 처리 할 수있다. 우리는 서비스의 서명을 변경할 수있는 옵션이 없습니다. 이 문제에 정말로 도움을 주셔서 감사합니다.

+0

은 BaseEntity JavaBean입니다 (예 : userName에 대한 getter/setter가 있음) –

+0

BaseEntity는 JavaBean입니다. 그러나 사용자 (사용자 이름이있는)는 BaseEntity를 확장합니다. BaseEntity는 생성 된 날짜, 업데이트 날짜, 업데이트 날짜 (모든 엔티티에 공통적)로 작성된 ID를 포함합니다. – Manjunath

+1

아래 링크는 내 질문에 대한 대답입니다. http://stackoverflow.com/questions/11798394/polymorphism-in-jackson-annotations-jsontypeinfo-usage – Manjunath

답변

-1

는 제네릭을 사용하려고 했습니까? 특정 유형에 맵핑하도록 Jackson에 알리기 위해 Resource 클래스에서 구체적인 클래스 유형을 선언 할 수 있습니다.

+0

가능한 경우 코드로 자세한 설명을 추가하십시오. – Sandeep