2012-11-27 97 views
2

我想配置Jaxb2Marshaller象下面這樣:Jaxb2Marshaller的classesToBeBound財產

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
    <property name="classesToBeBound"> 
     <list> 
      <value>com.test.response1.ResponseType1</value> 
      <value>com.test.response2.ResponseType2</value> 
      <value>com.test.request.Request</value> 
     </list> 
    </property> 
</bean> 

和它的作品。

混淆是劑量在classesToBound事項中提到的類的順序?

如果我將其更改爲:

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> 
    <property name="classesToBeBound"> 
     <list> 
         <value>com.test.request.Request</value> 
      <value>com.test.response1.ResponseType1</value> 
      <value>com.test.response2.ResponseType2</value> 
     </list> 
    </property> 
</bean> 

隨着一切我得到以下異常如出一轍:

org.springframework.beans.TypeMismatchException: Failed to convert value of type 'com.test.response2.ResponseType2' to required type 'com.test.request.Request' 

spring正在使用的版本是:3.1.2.RELEASE

人幫幫我 ?

回答

0

除非Spring 3.1.0和3.1.2之間有所改變,否則如果您正在處理JAXB生成的類,順序無關緊要。如果您手動創建/註釋對象,那可能是另一回事 - 也許如果您發佈它們,我們可以提供幫助。另一方面,我強烈建議使用contextPathspackagesToScan屬性,使用另一種機制將Jaxb2Marshaller指向要編組的類。請記住,contextPath/contextPaths需要由JAXB編譯器生成的ObjectFactory類。