Мне не удается использовать свой пользовательский objectMapper для ModifyResponseBodyGatewayFilterFactory.
Я использую ModifyResponseBodyGatewayFilterFactory, который использует и возвращает List. Для чтения и записи MyObject требуется MyCustomMapper. Хотя функция rewriteFunction, кажется, получает правильно десериализованный список, она не может сериализовать мой ответ (даже если он вообще не изменен).
Я предоставляю bean-компоненты для MyCustomMapper и Jackson2JsonDecoder, Jackson2JsonEncoder, ExchangeStrategies, WebClient и WebFluxConfigurer, все правильно используют MyCustomMapper. Кажется, ничего не помогает.
Вступая в код Spring, в org.springframework.cloud.gateway.filter.factory.rewrite.ModifyResponseBodyGatewayFilterFactory.ModifiedServerHttpResponse#writeWith:229, используется новый BodyInserterContext, который вызывает неизменяемый ExchangeStrategies.withDefaults(). Этот не использует предоставленный мной кодер или картограф. Я думаю, что это проблема, но я не нашел здесь способа настроить другой BodyInserterContext или ExchangeStrategy.
Stacktrace:
org.springframework.core.codec.CodecException: Type definition error: [simple type, class com.something.MyObject]
at org.springframework.http.codec.json.AbstractJackson2Encoder.encodeValue(AbstractJackson2Encoder.java:256) ~[spring-web-6.0.10.jar:6.0.10]
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException:
Assembly trace from producer [reactor.core.publisher.MonoMapFuseable] :
reactor.core.publisher.Mono.map(Mono.java:3411)
org.springframework.http.codec.json.AbstractJackson2Encoder.lambda$encode$7(AbstractJackson2Encoder.java:158)
Подробнее здесь: https://stackoverflow.com/questions/790 ... pper-for-e