Issue
@RequestMapping(method = RequestMethod.GET, produces = "application/xml")
@ResponseBody
resonpse xml like this
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xml>
<code>0</code>
<msg>success</msg>
</xml>
however I the response I want like this
<xml>
<code>0</code>
<msg>success</msg>
</xml>
How to remove the XML header by annotation or XML config file? Thanks.
I have solved this problem.
Use this XML Conventor
<bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> <property name="marshaller" ref="marshaller"></property> <property name="unmarshaller" ref="marshaller"></property> </bean>
Config the Marshaller bean
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller" id="marshaller"> <property name="classesToBeBound"> <list> <value>com.xx.entity.Message</value> </list> </property> <property name="marshallerProperties"> <map> <entry> <key> <util:constant static-field="javax.xml.bind.Marshaller.JAXB_FRAGMENT"/> </key> <value type="java.lang.Boolean">true</value> </entry> </map> </property>
Solution
I have solved this problem.
Use this XML Conventor
<bean class="org.springframework.http.converter.xml.MarshallingHttpMessageConverter"> <property name="marshaller" ref="marshaller"></property> <property name="unmarshaller" ref="marshaller"></property> </bean>
Config the Marshaller bean
<bean class="org.springframework.oxm.jaxb.Jaxb2Marshaller" id="marshaller"> <property name="classesToBeBound"> <list> <value>com.xx.entity.Message</value> </list> </property> <property name="marshallerProperties"> <map> <entry> <key> <util:constant static-field="javax.xml.bind.Marshaller.JAXB_FRAGMENT"/> </key> <value type="java.lang.Boolean">true</value> </entry> </map> </property>
Answered By - Larry.Z
Answer Checked By - Mildred Charles (JavaFixing Admin)