Web服务中的Spring 3和JAXB

时间:2012-07-12 21:30:47

标签: spring jaxb spring-ws

我正在尝试编写一个简单的Web服务,使用JAXB自动序列化和反序列化对象:

@XmlRootElement
public class SimpleObject {

    private int id;

    private String name;

    /* ... */
}

@Controller
public class SimpleObjectController {

    @RequestMapping("submit",method=RequestMethod.POST)
    public String doPost(@RequestBody SimpleObject value) {
        return value.toString();
    }
}

<?xml version="1.0"?>
<beans ...>

    <oxm:jaxb2-marshaller id="marshaller" class="path.to.objects"/>
</beans>

但是,当我实际提出请求时,我会得到以下内容:

HTTP Status 415
The server refused this request because the request entity is in a format not
supported by the requested resource for the requested method ().

我没有从Spring返回日志,这让我很难确定根本原因。这个过程中是否有一个关键步骤,我不知道?

1 个答案:

答案 0 :(得分:0)

通常这是因为请求中缺少“application / xml”的Accept标头或Content Type标头。此外,如果您使用的是Spring 3.1,则可以通过以下方式使注释更加明确:

@RequestMapping(value="submit",method=RequestMethod.POST, consumes="application/xml", produces="application/xml")