如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?
Posted
技术标签:
【中文标题】如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?【英文标题】:How to customize SpringWebFlux WebClient xml+rss JAXB deserialization? 【发布时间】:2019-06-26 23:07:18 【问题描述】:查看spring webflux客户端的json配置示例:
ExchangeStrategies strategies = ExchangeStrategies
.builder()
.codecs(clientDefaultCodecsConfigurer ->
//how to do the same but xml?
clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
clientDefaultCodecsConfigurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(new ObjectMapper(), MediaType.APPLICATION_JSON));
).build();
WebClient webClient = WebClient.builder().exchangeStrategies(strategies).build();
与this one 相同的问题,但针对 jaxb xml 序列化。是否有 JAXB 和 xml 的解码器实现?是否可以使用HttpMessageConverter作为webclient的解码器,使spring boot控制器和客户端实现一致?
【问题讨论】:
【参考方案1】:我的猜测是org.springframework.http.codec.xml
包中的Jaxb2XmlDecoder
和Jaxb2XmlEncoder
类:
ExchangeStrategies.builder()
.codecs(configurer ->
configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
)
.build();
【讨论】:
以上是关于如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring WebFlux 上自定义未经授权的响应