2012-09-27 93 views
1

技術堆棧:Java 1.6的,JAXB,春季3,JAX-RS(的RESTEasy),XSDJSON響應:春季與JAXB

你好,

我使用Spring與JAX-RS創建RESTful Web服務。

一切工作正常,除了生成的響應包含setters信息例如

{ 
    ... 

    "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() { 

     .... 
     .... 
    } 


} 

**更新2 ** 這種情況僅在內容類型是JSON,在內容類型爲「XML」的情況下,制定者不返回。如果有幫助。

+0

顯示您的DTO課程。 – basiljames

+0

不應該'propOrder'是'{「name」,「id」}'而不是'{「personResponse」}'? –

+0

是的,也許。這些bean是自動生成的,只是爲了建議而創建這個樣本。我沒有發佈原始代碼,因爲它太大了 – adi

回答

0

問題出現在xjb文件中,詳情請查看相關問題here

0

我懷疑堆棧的其他部分是在額外的領域編織你的領域模型(即一些ORM庫這樣做)。要確認您可以使用java.lang.reflect API查看您的班級在ClassLoader加載後有哪些字段。