2012-09-27 4 views
1

기술 스택 봄 : 자바 1.6, JAXB, 봄 3, JAX-RS (RESTEasy가), XSDJSON 응답 : JAXB

안녕하세요, 편안한를 Webservice를 만들 JAX-RS와 스프링을 사용하고

.

생성 된 응답에 세터 정보가 포함되어 있다는 점을 제외하면 모든 것이 올바르게 작동합니다.

{ 
    ... 

    "setName": true, 
    "setId": true, 
    "setAddress": true, 
    "setAge": true, 
} 

나는이 원인을 모르고 있습니까? 어떻게 해제 할 수 있습니까?

아디 1

UPDATE :. PersonRequest 클래스가 JAXB에 의해 생성 된 모든 javax.xml.bind.annotation의 포함되어

* 특수.

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "", propOrder = { "personResponse " }) 
@XmlRootElement(name = "PersonResponse ") 
public class PersonResponse { 

    @XmlElement(name = "Name", required = true) 
    protected String name; 

    @XmlElement(name = "Id", required = true) 
    protected String id; 

    // and the setters and getters 



} 

및 리소스는 다음과 같습니다

@Component 
@Path("/person") 
public class PersonImpl implements Person { 

    @Override 
    @GET 
    @Produces({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, "application/x-amf" }) 
    @Path("v1") 
    public PersonResponse getPerson() { 

     .... 
     .... 
    } 


} 

** 콘텐츠 형식은 JSON 인 경우에만이 'XML'등의 컨텐츠 유형의 경우, 발생 2 ** UPDATE, 세터 반환되지 않습니다. 그게 도움이된다면.

+0

DTO 클래스를 표시하십시오. – basiljames

+0

'propOrder'는'{ "personResponse"}'보다는 "{"name ","id "}'가되어야합니까? –

+0

예, 아마도. 이 빈들은 자동으로 생성되며 조언을 위해서만이 샘플을 생성합니다. 너무 커서 원래 코드를 게시하지 않았습니다. – adi

답변

0

문제는 xjb 파일에 있습니다. 자세한 내용은 관련 질문 here을 참조하십시오.

0

스택의 다른 부분이 도메인 모델의 추가 필드에 포함되어있는 것으로 의심됩니다 (일부 ORM 라이브러리에서이 작업을 수행함). java.lang.reflect API를 사용하여 클래스가 ClassLoader에 의해로드 된 후 어떤 필드가 있는지 확인할 수 있는지 확인하십시오.