如何在从端点返回的XML中添加XML声明

如何在从端点返回的XML中添加XML声明,xml,spring-boot,Xml,Spring Boot,我已将以下内容添加到我的应用程序中 @Bean public MappingJackson2XmlHttpMessageConverter mappingJackson2XmlHttpMessageConverter() { MappingJackson2XmlHttpMessageConverter xmlConverter = new MappingJackson2XmlHttpMessageConverter(); XmlMapper objectMapper = new

我已将以下内容添加到我的应用程序中

@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>

用户ID
DFE
激活ID
2DD9881
声明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定制。

声明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);
    }

}

可能您可以尝试使用
@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);
    }

}