如何自定义 SpringWebFlux WebClient xml+rss JAXB 反序列化?

Che*_*rry 6 java spring jaxb spring-boot spring-webflux

看一下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();
Run Code Online (Sandbox Code Playgroud)

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

小智 0

我的疯狂猜测是包中的Jaxb2XmlDecoder和类:Jaxb2XmlEncoderorg.springframework.http.codec.xml

ExchangeStrategies.builder()
        .codecs(configurer -> {
            configurer.defaultCodecs().jaxb2Decoder(new Jaxb2XmlDecoder());
            configurer.defaultCodecs().jaxb2Encoder(new Jaxb2XmlEncoder());
        })
        .build();
Run Code Online (Sandbox Code Playgroud)