Hi all,
I am trying to process the following XML to add and set some properties to items:
. I use StexEventItemReader abd Jaxb2 unmarshaller for unmarshalling : all works fine.HTML Code:<lot xmlns:xsi=...> <id>...</id> <date>...</date> <desc>...</desc> <items> <item>...</item> <item>...</item> .... <item>...</item> </items> </lot>
. I modify my Jaxb2 objects as expected
. At marshalling step is my problem:
I use StaxEventItemWriter and Jaxb2 marshaller, but i am not able to well reconstitute
the XML file. What i obtain is something like:
as we can see: the root tag element is put twice for opening and closing the xml document.HTML Code:<lot> <lot> <id>...</id> <date>...</date> <desc>...</desc> <items> <item>...</item> <item>...</item> .... <item>...</item> </items> </lot> </lot>
My configuration is like this:
In the class MyWriter, in the 'write' method, the delegate writer (StaxEventItemWriter) writes the object transmitted in parameter (here a 'Lot' object):Code:<beans:bean id="myWriter" class="com.MyWriter"> <beans:property name="delegate" ref="xmlWriter" /> </beans:bean> <beans:bean id="xmlWriter" class="org.springframework.batch.item.xml.StaxEventItemWriter"> <beans:property name="rootTagName" value="lot" /> <beans:property name="marshaller" ref="marshaller" /> <beans:property name="overwriteOutput" value="true" /> <beans:property name="resource" ref="fichierOUT" /> </beans:bean> <beans:bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller"> <beans:property name="classesToBeBound"> <beans:list> <beans:value>Lot</beans:value> <beans:value>Items</beans:value> <beans:value>Item</beans:value> </beans:list> </beans:property> <beans:property name="schema" value="file:./myXSD.xsd"/> </beans:bean>
I tried to make the delegate write only the 'items' block, but in this case i lose the other information of the lot (see the following xml):Code:delegate.write(lot)
HTML Code:<lot> <items> <item>...</item> <item>...</item> .... <item>...</item> </items> </lot>
What is wrong in my configuration? how is it possible to obtain the XML expected? If you have a sample of code doing that, it would be great!
Thanks in advance ofr your help on this!


Reply With Quote