Tech Stack:Java 1.6,JAXB,Spring 3,JAX-RS(RESTEasy),XSD
您好,
我使用Spring和JAX-RS创建RestFul Webservice。
除了生成的响应包含setters信息,例如。
之外,一切正常 {
...
"setName": true,
"setId": true,
"setAddress": true,
"setAge": true,
}
我不知道可能导致这种情况的原因是什么? 我怎么能关掉这个?
阿迪
更新1:
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 ** 仅当Content-Type为json时才会发生这种情况,如果内容类型为' xml',则不会返回setter。如果这有帮助。
答案 0 :(得分:0)
我怀疑堆栈的其他部分是在你的域模型的额外字段中编织(即一些ORM库这样做)。要确认您可以使用java.lang.reflect
API查看您的班级在ClassLoader
加载后的字段。
答案 1 :(得分:0)
问题出现在xjb文件中,有关详细信息,请查看相关问题here。