首页 > 解决方案 > 如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?

问题描述

查看 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();

与此问题相同的问题,但针对 jaxb xml 序列化。是否有 JAXB 和 xml 的解码器实现?是否可以使用HttpMessageConverter作为 webclient 的解码器来使 spring boot 控制器和客户端实现一致?

标签: javaspringspring-bootjaxbspring-webflux

解决方案


我的疯狂猜测是包中的Jaxb2XmlDecoderJaxb2XmlEncoderorg.springframework.http.codec.xml

ExchangeStrategies.builder()
        .codecs(configurer -> {
            configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
            configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
        })
        .build();

推荐阅读