我只是尝试将我的 spring-boot-web 应用程序(一个 REST web 服务)升级到spring-boot版本1.3.0.RELEASE。我使用 spring-boot-actuator 作为/health
端点。使用我之前的 spring-boot 版本(1.2.6.RELEASE),该端点能够服务于 media type 的请求application/xml
,但现在已损坏。
请注意,我使用 XStream 作为 XML 序列化程序,我通过向 spring-boot 提供配置来配置它,该配置扩展 WebMvcConfigurerAdapter 以配置 HTTP 消息的编组器:
@Configuration
public class XStreamMarshallerConfiguration extends WebMvcConfigurerAdapter {
@Autowired
private Jackson2ObjectMapperBuilder jackson2ObjectMapperBuilder;
@Override
public void configureMessageConverters( final List<HttpMessageConverter<?>> converters ) {
converters.add( createJsonConverter() ); // support JSON as default (because it is the first)
converters.add( createXmlHttpMessageConverter() ); // support XStream XML
super.configureMessageConverters( converters );
}
private MappingJackson2HttpMessageConverter createJsonConverter() {
ObjectMapper jsonMapper = this.jackson2ObjectMapperBuilder.build();
return new MappingJackson2HttpMessageConverter( jsonMapper );
}
private HttpMessageConverter<Object> createXmlHttpMessageConverter() {
MarshallingHttpMessageConverter xmlConverter = new MarshallingHttpMessageConverter();
XStreamMarshaller xstreamMarshaller = new XStreamMarshaller();
configureXStream( xstreamMarshaller.getXStream() ); // my XStream setup
xmlConverter.setMarshaller( xstreamMarshaller );
xmlConverter.setUnmarshaller( xstreamMarshaller );
return xmlConverter;
}
}
任何想法为什么/health
不会使用新的 spring-boot 版本序列化其对 XML 的响应?