spring-attic / spring-native

Spring Native is now superseded by Spring Boot 3 official native support

Home Page:https://docs.spring.io/spring-boot/docs/current/reference/html/native-image.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

UnsupportedMediaTypeException: Content type 'application/json' not supported for bodyType

fragaLY opened this issue · comments

Hello, Spring-Native team and ambassadors.

I've faced a problem related to supported media types.
In not native solution in works correctly. Absolutely no changes in the code base. I have only changes related to Gradle setup of AOT and etc.

2022-09-27 19:06:24.296 ERROR 1 --- [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [29c49536-2]  500 Server Error for HTTP GET "/countries"

org.springframework.web.reactive.function.UnsupportedMediaTypeException: Content type 'application/json' not supported for bodyType=by.vk.springbootreactivenative.location.responses.CountryResponse
        at org.springframework.web.reactive.function.BodyInserters.unsupportedError(BodyInserters.java:391) ~[na:na]
        Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
        *__checkpoint ? Handler by.vk.springbootreactivenative.configuration.A2BConfiguration$$Lambda$9294901dc611cc3059b446732514d373f6686872@3fcee7c7 [DispatcherHandler]
        *__checkpoint ? HTTP GET "/api/v1/countries" [ExceptionHandlingWebHandler]
Original Stack Trace:
                at org.springframework.web.reactive.function.BodyInserters.unsupportedError(BodyInserters.java:391) ~[na:na]
                at org.springframework.web.reactive.function.BodyInserters.lambda$writeWithMessageWriters$11(BodyInserters.java:381) ~[na:na]
                at java.util.Optional.orElseGet(Optional.java:364) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:na]
                at org.springframework.web.reactive.function.BodyInserters.writeWithMessageWriters(BodyInserters.java:381) ~[na:na]
                at org.springframework.web.reactive.function.BodyInserters.lambda$fromPublisher$4(BodyInserters.java:185) ~[na:na]
                at org.springframework.web.reactive.function.server.DefaultEntityResponseBuilder$DefaultEntityResponse.writeToInternal(DefaultEntityResponseBuilder.java:233) ~[na:na]
                at org.springframework.web.reactive.function.server.DefaultServerResponseBuilder$AbstractServerResponse.writeTo(DefaultServerResponseBuilder.java:351) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:5.3.23]
                at org.springframework.web.reactive.function.server.support.ServerResponseResultHandler.handleResult(ServerResponseResultHandler.java:94) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:5.3.23]
                at org.springframework.web.reactive.DispatcherHandler.handleResult(DispatcherHandler.java:179) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:5.3.23]
                at org.springframework.web.reactive.DispatcherHandler.lambda$handle$2(DispatcherHandler.java:154) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:5.3.23]
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[na:na]
                at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[na:na]
                at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:129) ~[na:na]
                at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:171) ~[na:na]
                at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2194) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2068) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[na:na]
                at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[na:na]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:74) ~[na:na]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.innerNext(FluxConcatMap.java:282) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatMap$ConcatMapInner.onNext(FluxConcatMap.java:863) ~[na:na]
                at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122) ~[na:na]
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[na:na]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.request(FluxConcatArray.java:276) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.request(MonoNext.java:108) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxPeek$PeekSubscriber.request(FluxPeek.java:138) ~[na:na]
                at reactor.core.publisher.FluxMap$MapSubscriber.request(FluxMap.java:164) ~[na:na]
                at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2194) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.onSubscribe(Operators.java:2068) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxMap$MapSubscriber.onSubscribe(FluxMap.java:92) ~[na:na]
                at reactor.core.publisher.FluxPeek$PeekSubscriber.onSubscribe(FluxPeek.java:171) ~[na:na]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoNext$NextSubscriber.onSubscribe(MonoNext.java:70) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:187) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.drain(FluxConcatMap.java:451) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxConcatMap$ConcatMapImmediate.onSubscribe(FluxConcatMap.java:219) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:165) ~[na:na]
                at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:87) ~[na:na]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52) ~[na:na]
                at reactor.core.publisher.Mono.subscribe(Mono.java:4455) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.subscribeNext(MonoIgnoreThen.java:263) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoIgnoreThen.subscribe(MonoIgnoreThen.java:51) ~[na:na]
                at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:3.4.23]
                at reactor.core.publisher.MonoDeferContextual.subscribe(MonoDeferContextual.java:55) ~[na:na]
                at reactor.netty.http.server.HttpServer$HttpServerHandle.onStateChange(HttpServer.java:967) ~[na:na]
                at reactor.netty.ReactorNetty$CompositeConnectionObserver.onStateChange(ReactorNetty.java:677) ~[na:na]
                at reactor.netty.transport.ServerTransport$ChildObserver.onStateChange(ServerTransport.java:475) ~[na:na]
                at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:570) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:1.0.23]
                at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[na:na]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:214) ~[na:na]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:336) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:308) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[na:na]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:4.1.82.Final]
                at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) ~[na:na]
                at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) ~[na:na]
                at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) ~[na:na]
                at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) ~[na:na]
                at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[na:na]
                at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[na:na]
                at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[na:na]
                at java.lang.Thread.run(Thread.java:833) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:na]
                at com.oracle.svm.core.thread.PlatformThreads.threadStartRoutine(PlatformThreads.java:705) ~[by.vk.springbootreactivenative.SpringBootReactiveNativeApplication:na]
                at com.oracle.svm.core.posix.thread.PosixPlatformThreads.pthreadStartRoutine(PosixPlatformThreads.java:202) ~[na:na]

Code samples:

  @Bean
  public RouterFunction<ServerResponse> route(LocationHandler location) {
    return RouterFunctions
        .route(GET("/countries").and(accept(APPLICATION_JSON)), location::countries);
   }
   
   ...
   
   @Component
public record LocationHandler(CountryRepository countryRepository ) {

  public Mono<ServerResponse> countries(ServerRequest request) {
    return ServerResponse
        .ok()
        .contentType(MediaType.APPLICATION_JSON)
        .body(countryRepository.findAll().mapNotNull(CountryResponse::from), CountryResponse.class)
        .switchIfEmpty(ServerResponse.notFound().build());
  }
}
  
  public interface CountryRepository extends R2dbcRepository<Country, Long> {
}
server:
  compression:
    enabled: true

spring:
  main:
    banner-mode: off
    web-application-type: reactive
  cache:
    type: none
  webflux:
    base-path: "api/v1/"
  r2dbc:
    url: "r2dbc:postgresql://localhost:5433/a2b" # for docker "r2dbc:postgresql://postgres-a2b:5432/a2b"
    username: "postgres"
    password: "postgres"
    properties:
      schema: "a2b"

management:
  health:
    livenessstate:
      enabled: true
    readinessstate:
      enabled: true
  endpoint:
    health:
      enabled: true
      probes:
        enabled: true
      show-components: never
      show-details: never
      group:
        readiness:
          include: readinessState, db
    metrics.enabled: true
    prometheus.enabled: true
  endpoints.web.exposure.include: "*"
  metrics.export.prometheus.enabled: true

logging.level:
  ROOT: info
  by.vk.springbootreactive: info
  org.springframework: info

All the sources you could find there: https://github.com/fragaLY/performance-researches/tree/master/spring-boot-reactive-native

In addition, right now after the second bootBuildImage:

2022-09-28 13:36:14.696 DEBUG 1 --- [ctor-http-nio-4] o.s.w.s.adapter.HttpWebHandlerAdapter    : [e301f6d9-3] HTTP GET "/api/v1/countries"
2022-09-28 13:36:14.696 DEBUG 1 --- [ctor-http-nio-4] o.s.w.r.handler.SimpleUrlHandlerMapping  : [e301f6d9-3] Mapped to ResourceWebHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/]]

It is due to missing reflection entries Spring Native can't detect because used in the body of the method. You can fix this by adding @TypeHint(types = CountryResponse.class, access = { TypeAccess.DECLARED_METHODS, TypeAccess.DECLARED_FIELDS }) to the application class.