根据Spring MVC文档,<mvc:annotation-driven/>
如果Jackson在类路径中,则配置对JSON的支持,如果类路径中存在JAXB,则支持XML。只需在我的pom.xml中添加Jackson依赖项,我就可以获得JSON支持! (见:Ajax Simplification in Spring 3.0)
但是,尝试使用接受标头“application / xml”访问相同的服务后,我得到406 Not Acceptable响应。在类路径中获取JAXB的最简单方法是什么?什么是启用XML MarshallingHttpMessageConverter支持?
更新
看一下AnnotationDrivenBeanDefinitionParser,我可以看看是什么定义了“jaxb2Present”。我在第179行设置了一个断点,看看Jaxb2RootElementHttpMessageConverter是否确实像MappingJacksonHttpMessageConverter一样被注册。它不是......
将JAXB添加到类路径以使其自动序列化我的XML请求的最简单方法是什么?
答案 0 :(得分:2)
它应该工作。确保返回的对象具有JAXB所需的@XmlRootElement
注释。
答案 1 :(得分:0)
如果您使用的是Java 6,则JAXB已经在类路径中。如果您使用的是Java 5,则需要自己添加reference implementation。
如果你正在使用Maven,你可以添加到你的pom.xml:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.2</version>
</dependency>