【发布时间】:2014-01-20 07:18:09
【问题描述】:
我在使用 Spring3 和 Jaxb2 将 simalar xml(相同的根元素但不同的字段)解组到不同的对象时遇到问题
我正在使用 spring 来定义我的 xml 转换器,如下所示:
<bean id="xmlConverter" class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter">
<property name="marshaller" ref="jaxbMarshaller"></property>
<property name="unmarshaller" ref="jaxbMarshaller"></property>
<property name="supportedMediaTypes" value="text/xml" />
</bean>
<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="classesToBeBound">
<list>
<value>com.my.project.Object1</value>
<value>com.my.project.Object2</value>
<value>com.my.project.Object3</value>
</list>
</property>
所以问题归结为每个对象都有相同的 @XmlRootElement(name = "xml") 但完全不同的字段。 当我只定义了一个对象时,每个对象都会正确解组,但是当我添加多个对象时,它会一直假定最后一个对象,这是我猜测的一些最重要的问题。
有人知道如何解决这个问题吗?
编辑:解决方案我创建了一个包含所有字段的较大对象,这解决了问题。不是最好的解决方案,但效果很好。
【问题讨论】: