我正在尝试从XML(请求体)解析对象。我的控制器方法的标题是
public ModelAndView differentTypeOfIds(@RequestBody DiffIdsRequest.DescBatch body){
其中DescBatch是静态内部类
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"descBatch"
})
@XmlRootElement(name = "diffIdsRequest")
public class DiffIdsRequest {
@XmlElement(name = "desc-batch", required = true)
protected DiffIdsRequest.DescBatch descBatch;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"descItem"
})
public static class DescBatch {
一小段servlet配置
<oxm:jaxb2-marshaller id="marshaller">
<oxm:class-to-be-bound name="eu.eudml.restModel.DiffIdsRequest$DescBatch" />
</oxm:jaxb2-marshaller>
在日志中我可以看到行
2012-07-31 17:34:11,604 [] [pool-2-thread-1] INFO o.s.oxm.jaxb.Jaxb2Marshaller - Creating JAXBContext with clas ses to be bound [class eu.eudml.restModel.DiffIdsRequest$DescBatch]
似乎没问题,但是当我发送一些数据(xml没有任何名称空间)时,不会调用differentTypeIds。 ModelAndView为null(日志)。
内班或其他什么问题?
答案 0 :(得分:0)
您似乎在@XmlRootElement
上遗失了@XmlType
或DescBatch
。此外,您必须确保将application/xml
的Accept标头作为请求的一部分发送。