2010-09-13 76 views
2

根據Spring MVC文檔,如果Jackson位於類路徑中,則<mvc:annotation-driven/>會配置對JSON的支持;如果JAXB存在於類路徑中,則支持XML。只需將Jackson依賴項添加到我的pom.xml中,即可獲得JSON支持! (請參閱:Ajax Simplification in Spring 3.0Spring MVC:將JAXB添加到類路徑中,以便它自動序列化XML

但嘗試訪問具有接受標頭「application/xml」的相同服務後,我收到406 Not Acceptable響應。在類路徑中獲取JAXB的最簡單方法是什麼?啓用對XML MarshallingHttpMessageConverter的支持的必要條件是什麼?

更新

考慮看看AnnotationDrivenBeanDefinitionParser,我可以看到什麼定義,如果 「jaxb2Present」。我在179行周圍設置了一個斷點,以查看Jaxb2RootElementHttpMessageConverter是否確實像MappingJacksonHttpMessageConverter那樣被註冊了。它不是...

將JAXB添加到類路徑以使其自動序列化我的XML請求的最簡單方法是什麼?

回答

2

它應該工作。確保返回的對象具有JAXB所要求的@XmlRootElement註釋。

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> 
+1

除了參考實現還有的莫西(http://www.eclipse.org/eclipselink/moxy .php)和JaxMe(http://ws.apache.org/jaxme/)JAXB實現。 – 2010-09-15 20:23:45

相關問題