ModifyResponseBodyGatewayFilterFactory не использует мой собственный objectMapper для кодированияJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 ModifyResponseBodyGatewayFilterFactory не использует мой собственный objectMapper для кодирования

Сообщение Anonymous »

Мне не удается использовать свой пользовательский 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»