[英]How to add XML declaration in the xml returning from the end-point
我已将以下内容添加到我的应用程序中
@Bean
public MappingJackson2XmlHttpMessageConverter mappingJackson2XmlHttpMessageConverter() {
MappingJackson2XmlHttpMessageConverter xmlConverter = new MappingJackson2XmlHttpMessageConverter();
XmlMapper objectMapper = new XmlMapper();
objectMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlConverter.setObjectMapper(objectMapper);
return xmlConverter;
}
但是,返回的 xml 如下,即缺少 xml 声明。 任何想法我还需要添加什么?
<Data>
<description></description>
<codeList>
<codeList>
<description>User ID</description>
<key>dfdfeee</key>
</codeList>
<codeList>
<description>Activation ID</description>
<key>2ddddd9881</key>
</codeList>
</codeList>
声明bean:
@Bean
public MappingJackson2XmlHttpMessageConverter mappingJackson2XmlHttpMessageConverter(Jackson2ObjectMapperBuilder builder) {
XmlMapper xmlMapper = builder.createXmlMapper(true).build();
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
return new MappingJackson2XmlHttpMessageConverter(xmlMapper);
}
顺便说一句,这应该覆盖自动配置的bean
org.springframework.boot.autoconfigure.web.JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration
此外,这种方式应该应用所有 XmlMapper/ObjectMapper 自定义,如果你有的话。
也许您可以尝试使用@Order(1)
,它将替换默认 bean。
@Configuration
@Order(1)
public class HttpMessageConverterConfig {
@Bean
public MappingJackson2XmlHttpMessageConverter mappingJackson2XmlHttpMessageConverter(
Jackson2ObjectMapperBuilder builder) {
XmlMapper xmlMapper = builder.createXmlMapper(true).build();
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
return new MappingJackson2XmlHttpMessageConverter(xmlMapper);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.