0

我正在尝试从 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 为空(日志)。

内部类或其他有什么问题吗?

4

1 回答 1

0

你似乎失踪了@XmlRootElement@XmlTypeDescBatch. 此外,您必须确保将 Accept 标头application/xml作为请求的一部分发送。

于 2012-07-31T16:21:24.403 回答