Open sachins-dev opened 2 years ago
Hello @sachins-dev, thanks for letting us know. If you have a sample set up with protobuff, Please provide a minimal, complete, verifiable example that reproduces the issue? Will take a look at how many changes that would require and where it can fit in the backlog.
Hello @sachins-dev, thanks for letting us know. If you have a sample set up with protobuf, Please provide a minimal, complete, verifiable example that reproduces the issue? Will take a look at how many changes that would require and where it can fit in the backlog.
Hi @OlgaMaciaszek, Thanks for the response. Please find the sample code in the below repository in order to replicate the scenario. https://github.com/sachins-dev/rsocket-http-bridge-test
Please take a look at the below doc for images. https://docs.google.com/document/d/1U54TdF-e09LcoCzlwnJ4-LefQxeeRWiG/edit?usp=sharing&ouid=108385394837758867369&rtpof=true&sd=true
Steps to reproduce the issue:
Requesting you to help on the below issue as well (If there is any way to achieve this via a different configuration, maybe I am not able to figure it out) https://github.com/rsocket-broker/rsocket-broker-client/issues/22
2022-04-20 12:45:42.666 DEBUG 28889 --- [ main] o.s.c.c.SpringBootVersionVerifier : Version found in Boot manifest [2.6.6]
2022-04-20 12:45:42.667 DEBUG 28889 --- [ main] o.s.c.c.CompositeCompatibilityVerifier : All conditions are passing
2022-04-20 12:45:42.719 INFO 28889 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8010
2022-04-20 12:45:42.737 DEBUG 28889 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : RouteDefinition bridge applying {_genkey_0=/rr} to Path
2022-04-20 12:45:42.749 DEBUG 28889 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : RouteDefinition matched: bridge
2022-04-20 12:45:42.755 INFO 28889 --- [ main] c.s.h.r.b.HttpRSocketBridgeApplication : Started HttpRSocketBridgeApplication in 1.931 seconds (JVM running for 2.54)
2022-04-20 12:46:17.639 DEBUG 28889 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : Route matched: bridge
2022-04-20 12:46:17.639 DEBUG 28889 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : Mapping [Exchange: POST http://localhost:8010/rr] to Route{id='bridge', uri=forward:/rsocket-server/rr, order=0, predicate=Paths: [/rr], match trailing slash: true, gatewayFilters=[], metadata={}}
2022-04-20 12:46:17.639 DEBUG 28889 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : [8ee15f4d-1] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@1a9afd01
2022-04-20 12:46:17.640 DEBUG 28889 --- [ctor-http-nio-2] o.s.c.g.handler.FilteringWebHandler : Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@1e60b459}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@4fe533ff}, order = -2147482648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@7930ffa9}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@40230eb9}, order = 0], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@717d7587}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration$NoLoadBalancerClientFilter@41b13f3d}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@5b7aa898}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@47311277}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@3e906375}, order = 2147483647]]
2022-04-20 12:46:17.655 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not found in cache
2022-04-20 12:46:17.661 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not available in FunctionCatalog or BeanFactory
2022-04-20 12:46:17.661 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not found in cache
2022-04-20 12:46:17.661 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not found in cache
2022-04-20 12:46:17.663 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not available in FunctionCatalog or BeanFactory
2022-04-20 12:46:17.663 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not found in cache
2022-04-20 12:46:17.663 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rr' is not found in cache
2022-04-20 12:46:17.666 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Registering function [rr]
2022-04-20 12:46:17.666 DEBUG 28889 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Composed function rr<reactor.core.publisher.Mono<org.springframework.messaging.Message
java.lang.IllegalArgumentException: No decoder for java.lang.Object at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:288) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:272) ~[spring-messaging-5.3.18.jar:5.3.18] at io.rsocket.broker.client.spring.BrokerRSocketRequester$BrokerRequestSpec.retrieveMono(BrokerRSocketRequester.java:289) ~[rsocket-broker-client-spring-0.3.0.jar:na] at io.rsocket.broker.http.bridge.core.RequestResponseFunction.lambda$apply$4(RequestResponseFunction.java:67) ~[rsocket-broker-http-bridge-0.3.0-SNAPSHOT.jar:na] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:251) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:336) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:600) ~[reactor-netty-http-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[reactor-netty-core-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:266) ~[reactor-netty-http-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2022-04-20 12:48:13.948 ERROR 28889 --- [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [8ee15f4d-1] 500 Server Error for HTTP POST "/rr"
java.lang.IllegalArgumentException: No decoder for java.lang.Object at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): __checkpoint ⇢ Handler org.springframework.cloud.function.web.flux.FunctionController#post(ServerWebExchange, String) [DispatcherHandler] checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] *checkpoint ⇢ HTTP POST "/rr" [ExceptionHandlingWebHandler] Original Stack Trace: at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:288) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:272) ~[spring-messaging-5.3.18.jar:5.3.18] at io.rsocket.broker.client.spring.BrokerRSocketRequester$BrokerRequestSpec.retrieveMono(BrokerRSocketRequester.java:289) ~[rsocket-broker-client-spring-0.3.0.jar:na] at io.rsocket.broker.http.bridge.core.RequestResponseFunction.lambda$apply$4(RequestResponseFunction.java:67) ~[rsocket-broker-http-bridge-0.3.0-SNAPSHOT.jar:na] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:251) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:336) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:600) ~[reactor-netty-http-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[reactor-netty-core-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:266) ~[reactor-netty-http-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
Disconnected from the target VM, address: '127.0.0.1:57338', transport: 'socket'
Process finished with exit code 130 (interrupted by signal 2: SIGINT)
Hi @OlgaMaciaszek,
Thanks for picking this. May I know when this feature will be available?
Also, Requesting you to help on the below issue as well (If there is any way to achieve this via a different configuration, maybe I am not able to figure it out) I have attached the sample code as well on the same issue to reproduce it https://github.com/rsocket-broker/rsocket-broker-client/issues/22
That will be really helpful :)
Hi @OlgaMaciaszek,
Thanks for picking this. May I know when this feature will be available?
Also, Requesting you to help on the below issue as well (If there is any way to achieve this via a different configuration, maybe I am not able to figure it out) I have attached the sample code as well on the same issue to reproduce it rsocket-broker/rsocket-broker-client#22
That will be really helpful :)
Hi @OlgaMaciaszek , Requesting your help on this.
Hello @sachins-dev. I understand you have already created an issue in Broker Client project for this. Please do not duplicate issues across projects. Closing in favour of https://github.com/rsocket-broker/rsocket-broker-client/issues/22.
Hello @sachins-dev. I understand you have already created an issue in Broker Client project for this. Please do not duplicate issues across projects. Closing in favour of rsocket-broker/rsocket-broker-client#22.
Hi @OlgaMaciaszek , The current issue (e.g. https://github.com/rsocket-broker/rsocket-broker-http-bridge/issues/9) is not a duplicate of any other issue. This is a kind of enhancement as asked in the below comment. https://github.com/rsocket-broker/rsocket-broker-http-bridge/issues/9#issuecomment-1111992783
The issue which you have mentioned is a different one (e.g. https://github.com/rsocket-broker/rsocket-broker-client/issues/22). Since, I was seeking help on that, hence I pasted the reference link for that.
Hi @spencergibb , @OlgaMaciaszek Thanks for the awesome project.
Requesting your help on the below problem.
Problem statement
Even after configuring the ProtobufDecoder, the org.springframework.messaging.rsocket.RSocketStrategies#decoder() throws java.lang.IllegalArgumentException: No decoder for java.lang.Object Since the condition Message.class.isAssignableFrom(elementType.toClass()) of org.springframework.http.codec.protobuf.ProtobufDecoder#canDecode() is evaluated to false in all of the implemenation of AbstractHttpRSocketFunction
Implementations: io.rsocket.broker.http.bridge.core.RequestResponseFunction#apply() io.rsocket.broker.http.bridge.core.RequestChannelFunction#apply() io.rsocket.broker.http.bridge.core.RequestStreamFunction#apply()
Reference document with images https://docs.google.com/document/d/1U54TdF-e09LcoCzlwnJ4-LefQxeeRWiG/edit?usp=sharing&ouid=108385394837758867369&rtpof=true&sd=true
Problem area stack trace
canDecode:125, ProtobufDecoder (org.springframework.http.codec.protobuf) decoder:86, RSocketStrategies (org.springframework.messaging.rsocket) retrieveMono:288, DefaultRSocketRequester$DefaultRequestSpec (org.springframework.messaging.rsocket) retrieveMono:272, DefaultRSocketRequester$DefaultRequestSpec (org.springframework.messaging.rsocket) retrieveMono:289, BrokerRSocketRequester$BrokerRequestSpec (io.rsocket.broker.client.spring) lambda$apply$4:67, RequestResponseFunction (io.rsocket.broker.http.bridge.core) apply:-1, RequestResponseFunction$$Lambda$1036/0x0000000801179c30 (io.rsocket.broker.http.bridge.core)
**However, protocol buffer payload is working correctly when I am not using ‘rsocket-broker-http-bridge’ rather directly hitting ‘rsocket-server’ via ‘rsocket-broker’.
As per my analysis, the hardcoded argument Object.class (at line 67 e.g. .retrieveMono(Object.class)) is causing this issue, as in case of org.springframework.http.codec.protobuf.ProtobufDecoder#canDecode() the condition Message.class.isAssignableFrom(elementType.toClass()) evaluates to false and throws IllegalArgumentException with message Throws No decoder for java.lang.Object
Suggestion: The logic similar to below stack trace might help in solving this issue, which is being called when I am not using ‘rsocket-broker-http-bridge’.**
Suggestion reference stack trace
canDecode:125, ProtobufDecoder (org.springframework.http.codec.protobuf) decodeContent:231, PayloadMethodArgumentResolver (org.springframework.messaging.handler.annotation.reactive) resolveArgument:167, PayloadMethodArgumentResolver (org.springframework.messaging.handler.annotation.reactive) resolveArgument:120, HandlerMethodArgumentResolverComposite (org.springframework.messaging.handler.invocation.reactive) getMethodArgumentValues:180, InvocableHandlerMethod (org.springframework.messaging.handler.invocation.reactive) invoke:127, InvocableHandlerMethod (org.springframework.messaging.handler.invocation.reactive) handleMessage:194, InvocableHelper (org.springframework.messaging.handler.invocation.reactive) handleMatch:462, AbstractMethodMessageHandler (org.springframework.messaging.handler.invocation.reactive) handleMatch:364, MessageMappingMessageHandler (org.springframework.messaging.handler.annotation.reactive) handleMatch:84, MessageMappingMessageHandler (org.springframework.messaging.handler.annotation.reactive) handleMessage:457, AbstractMethodMessageHandler (org.springframework.messaging.handler.invocation.reactive) lambda$handleAndReply$4:172, MessagingRSocket (org.springframework.messaging.rsocket.annotation.support) get:-1, MessagingRSocket$$Lambda$689/0x0000000800fc2628 (org.springframework.messaging.rsocket.annotation.support)
Application failure logs
2022-04-16 01:35:19.672 INFO 26179 --- [ main] c.s.h.r.b.HttpRSocketBridgeApplication : No active profile set, falling back to 1 default profile: "default" 2022-04-16 01:35:20.907 DEBUG 26179 --- [ main] o.s.cloud.context.scope.GenericScope : Generating bean factory id from names: [adaptCachedBodyGlobalFilter, addRequestHeaderGatewayFilterFactory, addRequestParameterGatewayFilterFactory, addResponseHeaderGatewayFilterFactory, afterRoutePredicateFactory, applicationAvailability, applicationTaskExecutor, beanPostProcessorConfiguration, beforeRoutePredicateFactory, betweenRoutePredicateFactory, bridgeRSocketStrategiesCustomizer, brokerClientProperties, brokerClientRSocketRequester, brokerMetadata, brokerRSocketRequesterBuilder, cacheRequestBodyGatewayFilterFactory, cachedCompositeRouteLocator, clientConnectorCustomizer, clientRSocketStrategiesCustomizer, clientThreadManager, cloudFoundryRouteServiceRoutePredicateFactory, compositeCompatibilityVerifier, compositeDiscoveryClient, configDataContextRefresher, configurationPropertiesBeans, configurationPropertiesRebinder, cookieRoutePredicateFactory, dedupeResponseHeaderGatewayFilterFactory, defaultClientTransportFactory, defaultCodecCustomizer, defaultPartHttpMessageReaderCustomizer, defaultValidator, defaultsBindHandlerAdvisor, discoveryLocatorProperties, environmentManager, errorAttributes, errorWebExceptionHandler, exchangeStrategiesCustomizer, ff, filteringWebHandler, forceAutoProxyCreatorToUseClassProxying, forwardPathFilter, forwardRoutingFilter, forwardedHeadersFilter, functionCatalog, functionHandlerMapping, functionRSocketConnectorConfigurer, functionRSocketMessageHandler, functionRouter, functionStringConverter, gRPCRequestHeadersFilter, gRPCResponseHeadersFilter, gatewayConfigurationService, gatewayHttpClientFactory, gatewayProperties, globalCorsProperties, gson, gsonBuilder, gzipMessageBodyResolver, handlerFunctionAdapter, headerRoutePredicateFactory, hostRoutePredicateFactory, httpClientProperties, httpHandler, httpRSocketBridgeApplication, httpRSocketBridgeConfiguration, inMemoryRouteDefinitionRepository, inetUtils, inetUtilsProperties, io.rsocket.broker.client.spring.BrokerClientAutoConfiguration, io.rsocket.broker.client.spring.BrokerClientRSocketStrategiesAutoConfiguration, io.rsocket.broker.http-bridge-io.rsocket.broker.http.bridge.config.RSocketHttpBridgeProperties, io.rsocket.broker.http.bridge.config.RSocketHttpBridgeAutoConfiguration, io.rsocket.broker.http.bridge.config.RSocketHttpBridgeStrategiesConfiguration, jacksonCborRSocketStrategyCustomizer, jacksonCodecCustomizer, jacksonJsonRSocketStrategyCustomizer, jacksonObjectMapper, jacksonObjectMapperBuilder, jsonComponentModule, jsonMapper, lifecycleProcessor, loadBalancerClientsDefaultsMappingsProvider, localeContextResolver, loggingRebinder, mapRequestHeaderGatewayFilterFactory, mbeanExporter, mbeanServer, methodRoutePredicateFactory, methodValidationPostProcessor, modifyRequestBodyGatewayFilterFactory, modifyResponseBodyGatewayFilterFactory, nativeFunctionInvocationHelper, nettyReactiveWebServerFactory, nettyWebServerFactoryCustomizer, nettyWriteResponseFilter, noLoadBalancerClientFilter, objectNamingStrategy, org.springframework.boot.autoconfigure.AutoConfigurationPackages, org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration, org.springframework.boot.autoconfigure.aop.AopAutoConfiguration, org.springframework.boot.autoconfigure.aop.AopAutoConfiguration$ClassProxyingConfiguration, org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration, org.springframework.boot.autoconfigure.context.ConfigurationPropertiesAutoConfiguration, org.springframework.boot.autoconfigure.context.LifecycleAutoConfiguration, org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration, org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration, org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration, org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration$DefaultCodecsConfiguration, org.springframework.boot.autoconfigure.http.codec.CodecsAutoConfiguration$JacksonCodecConfiguration, org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration, org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$Jackson2ObjectMapperBuilderCustomizerConfiguration, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperBuilderConfiguration, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$JacksonObjectMapperConfiguration, org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration$ParameterNamesModuleConfiguration, org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration, org.springframework.boot.autoconfigure.netty.NettyAutoConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketMessagingAutoConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketRequesterAutoConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketServerAutoConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration$JacksonCborStrategyConfiguration, org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration$JacksonJsonStrategyConfiguration, org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration, org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration, org.springframework.boot.autoconfigure.task.TaskSchedulingAutoConfiguration, org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration, org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration, org.springframework.boot.autoconfigure.web.embedded.EmbeddedWebServerFactoryCustomizerAutoConfiguration$NettyWebServerFactoryCustomizerConfiguration, org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.HttpHandlerAutoConfiguration$AnnotationConfig, org.springframework.boot.autoconfigure.web.reactive.ReactiveMultipartAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.ReactiveWebServerFactoryAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.ReactiveWebServerFactoryConfiguration$EmbeddedNetty, org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration$EnableWebFluxConfiguration, org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration$WebFluxConfig, org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration$WelcomePageConfiguration, org.springframework.boot.autoconfigure.web.reactive.WebSessionIdResolverAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.error.ErrorWebFluxAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorConfiguration$ReactorNetty, org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration, org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration$WebClientCodecsConfiguration, org.springframework.boot.context.internalConfigurationPropertiesBinder, org.springframework.boot.context.internalConfigurationPropertiesBinderFactory, org.springframework.boot.context.properties.BoundConfigurationProperties, org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor, org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.methodValidationExcludeFilter, org.springframework.boot.sql.init.dependency.DatabaseInitializationDependencyConfigurer$DependsOnDatabaseInitializationPostProcessor, org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration, org.springframework.cloud.autoconfigure.LifecycleMvcEndpointAutoConfiguration, org.springframework.cloud.autoconfigure.RefreshAutoConfiguration, org.springframework.cloud.autoconfigure.RefreshAutoConfiguration$RefreshScopeBeanDefinitionEnhancer, org.springframework.cloud.client.CommonsClientAutoConfiguration, org.springframework.cloud.client.ReactiveCommonsClientAutoConfiguration, org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClientAutoConfiguration, org.springframework.cloud.client.discovery.composite.reactive.ReactiveCompositeDiscoveryClientAutoConfiguration, org.springframework.cloud.client.discovery.simple.SimpleDiscoveryClientAutoConfiguration, org.springframework.cloud.client.discovery.simple.reactive.SimpleReactiveDiscoveryClientAutoConfiguration, org.springframework.cloud.client.loadbalancer.LoadBalancerDefaultMappingsProviderAutoConfiguration, org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationAutoConfiguration, org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationConfiguration, org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration, org.springframework.cloud.commons.config.CommonsConfigAutoConfiguration, org.springframework.cloud.commons.httpclient.HttpClientConfiguration, org.springframework.cloud.commons.util.UtilAutoConfiguration, org.springframework.cloud.configuration.CompatibilityVerifierAutoConfiguration, org.springframework.cloud.function.cloudevent.CloudEventsFunctionExtensionConfiguration, org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration, org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration$JsonMapperConfiguration, org.springframework.cloud.function.context.config.ContextFunctionCatalogAutoConfiguration$PlainFunctionScanConfiguration, org.springframework.cloud.function.rsocket.RSocketAutoConfiguration, org.springframework.cloud.function.rsocket.RSocketCustomizerConfiguration, org.springframework.cloud.function.rsocket.RSocketRoutingAutoConfiguration, org.springframework.cloud.function.web.flux.FunctionController, org.springframework.cloud.function.web.flux.ReactorAutoConfiguration, org.springframework.cloud.function.web.source.FunctionExporterAutoConfiguration, org.springframework.cloud.gateway.config.GatewayAutoConfiguration, org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyConfiguration, org.springframework.cloud.gateway.config.GatewayClassPathWarningAutoConfiguration, org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration, org.springframework.cloud.gateway.discovery.GatewayDiscoveryClientAutoConfiguration, org.springframework.cloud.gateway.discovery.GatewayDiscoveryClientAutoConfiguration$ReactiveDiscoveryClientRouteDefinitionLocatorConfiguration, org.springframework.context.annotation.internalAutowiredAnnotationProcessor, org.springframework.context.annotation.internalCommonAnnotationProcessor, org.springframework.context.annotation.internalConfigurationAnnotationProcessor, org.springframework.context.event.internalEventListenerFactory, org.springframework.context.event.internalEventListenerProcessor, parameterNamesModule, pathRoutePredicateFactory, prefixPathGatewayFilterFactory, preserveHostHeaderGatewayFilterFactory, propertiesRouteDefinitionLocator, propertySourcesPlaceholderConfigurer, queryRoutePredicateFactory, rSocketStrategies, rSocketStrategiesCustomizer, rc, reactiveCompositeDiscoveryClient, reactiveWebServerFactoryCustomizer, reactorClientHttpConnector, reactorNettyRequestUpgradeStrategy, reactorNettyWebSocketClient, reactorServerResourceFactory, readBodyPredicateFactory, redirectToGatewayFilterFactory, refreshEventListener, refreshScope, remoteAddrRoutePredicateFactory, removeCachedBodyFilter, removeHopByHopHeadersFilter, removeRequestHeaderGatewayFilterFactory, removeRequestParameterGatewayFilterFactory, removeResponseHeaderGatewayFilterFactory, requestHeaderSizeGatewayFilterFactory, requestHeaderToRequestUriGatewayFilterFactory, requestMappingHandlerAdapter, requestMappingHandlerMapping, requestSizeGatewayFilterFactory, resourceHandlerMapping, resourceUrlProvider, responseBodyResultHandler, responseEntityResultHandler, responseStatusExceptionHandler, retryGatewayFilterFactory, rewriteLocationResponseHeaderGatewayFilterFactory, rewritePathGatewayFilterFactory, rewriteResponseHeaderGatewayFilterFactory, routeDefinitionLocator, routeDefinitionRouteLocator, routeLocatorBuilder, routePredicateHandlerMapping, routeRefreshListener, routeToRequestUrlFilter, routerFunctionMapping, routingFilter, rr, rs, saveSessionGatewayFilterFactory, scheduledBeanLazyInitializationExcludeFilter, secureHeadersGatewayFilterFactory, secureHeadersProperties, server-org.springframework.boot.autoconfigure.web.ServerProperties, serverCodecConfigurer, serverResponseResultHandler, setPathGatewayFilterFactory, setRequestHeaderGatewayFilterFactory, setRequestHostHeaderGatewayFilterFactory, setResponseHeaderGatewayFilterFactory, setStatusGatewayFilterFactory, simpleDestinationResolver, simpleDiscoveryClient, simpleDiscoveryProperties, simpleHandlerAdapter, simpleReactiveDiscoveryClient, simpleReactiveDiscoveryProperties, simpleRequestBuilder, spring.cloud.compatibility-verifier-org.springframework.cloud.configuration.CompatibilityVerifierProperties, spring.cloud.discovery.client.health-indicator-org.springframework.cloud.client.discovery.health.DiscoveryClientHealthIndicatorProperties, spring.cloud.function-org.springframework.cloud.function.context.FunctionProperties, spring.cloud.function.rsocket-org.springframework.cloud.function.rsocket.RSocketFunctionProperties, spring.cloud.function.web.export-org.springframework.cloud.function.web.source.ExporterProperties, spring.cloud.gateway.loadbalancer-org.springframework.cloud.gateway.config.GatewayLoadBalancerProperties, spring.cloud.refresh-org.springframework.cloud.autoconfigure.RefreshAutoConfiguration$RefreshProperties, spring.cloud.service-registry.auto-registration-org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties, spring.codec-org.springframework.boot.autoconfigure.codec.CodecProperties, spring.gson-org.springframework.boot.autoconfigure.gson.GsonProperties, spring.info-org.springframework.boot.autoconfigure.info.ProjectInfoProperties, spring.jackson-org.springframework.boot.autoconfigure.jackson.JacksonProperties, spring.lifecycle-org.springframework.boot.autoconfigure.context.LifecycleProperties, spring.netty-org.springframework.boot.autoconfigure.netty.NettyProperties, spring.rsocket-org.springframework.boot.autoconfigure.rsocket.RSocketProperties, spring.sql.init-org.springframework.boot.autoconfigure.sql.init.SqlInitializationProperties, spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties, spring.task.scheduling-org.springframework.boot.autoconfigure.task.TaskSchedulingProperties, spring.web-org.springframework.boot.autoconfigure.web.WebProperties, spring.webflux-org.springframework.boot.autoconfigure.web.reactive.WebFluxProperties, spring.webflux.multipart-org.springframework.boot.autoconfigure.web.reactive.ReactiveMultipartProperties, springApplicationAdminRegistrar, springBootVersionVerifier, standardGsonBuilderCustomizer, standardJacksonObjectMapperBuilderCustomizer, stringToZonedDateTimeConverter, stripPrefixGatewayFilterFactory, taskExecutorBuilder, taskSchedulerBuilder, transferEncodingNormalizationHeadersFilter, viewResolutionResultHandler, webClientBuilder, webFluxAdapterRegistry, webFluxContentTypeResolver, webFluxConversionService, webFluxValidator, webFluxWebSocketHandlerAdapter, webHandler, webServerFactoryCustomizerBeanPostProcessor, webSessionIdResolver, webSessionManager, webSocketService, websocketRoutingFilter, weightCalculatorWebFilter, weightRoutePredicateFactory, welcomePageRouterFunctionMapping, xForwardedHeadersFilter, xForwardedRemoteAddrRoutePredicateFactory] 2022-04-16 01:35:20.908 INFO 26179 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=56e593fa-0c95-34fb-a0d5-34961141aa24 2022-04-16 01:35:28.132 DEBUG 26179 --- [ main] o.s.c.gateway.config.GatewayProperties : Routes supplied from Gateway Properties: [RouteDefinition{id='bridge', predicates=[PredicateDefinition{name='Path', args={_genkey_0=/rr}}], filters=[], uri=forward:/rsocket-server/rr, order=0, metadata={}}] 2022-04-16 01:35:28.227 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [After] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Before] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Between] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Cookie] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Header] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Host] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Method] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Path] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Query] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [ReadBody] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [RemoteAddr] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [XForwardedRemoteAddr] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Weight] 2022-04-16 01:35:28.228 INFO 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [CloudFoundryRouteService] 2022-04-16 01:35:28.309 INFO 26179 --- [ main] o.s.c.f.web.flux.FunctionHandlerMapping : FunctionCatalog: org.springframework.cloud.function.context.catalog.BeanFactoryAwareFunctionRegistry@36b9cb99 2022-04-16 01:35:32.784 DEBUG 26179 --- [ main] o.s.c.c.SpringBootVersionVerifier : Version found in Boot manifest [2.6.6] 2022-04-16 01:35:32.784 DEBUG 26179 --- [ main] o.s.c.c.CompositeCompatibilityVerifier : All conditions are passing 2022-04-16 01:35:33.515 INFO 26179 --- [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 8010 2022-04-16 01:35:33.537 DEBUG 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : RouteDefinition bridge applying {_genkey_0=/rr} to Path 2022-04-16 01:35:33.552 DEBUG 26179 --- [ main] o.s.c.g.r.RouteDefinitionRouteLocator : RouteDefinition matched: bridge 2022-04-16 01:35:33.561 INFO 26179 --- [ main] c.s.h.r.b.HttpRSocketBridgeApplication : Started HttpRSocketBridgeApplication in 14.569 seconds (JVM running for 15.431) 2022-04-16 01:37:36.772 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : Route matched: bridge 2022-04-16 01:37:36.772 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : Mapping [Exchange: POST http://localhost:8010/rr] to Route{id='bridge', uri=forward:/rsocket-server/rr, order=0, predicate=Paths: [/rr], match trailing slash: true, gatewayFilters=[], metadata={}} 2022-04-16 01:37:36.772 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.g.h.RoutePredicateHandlerMapping : [0bc7ac77-1] Mapped to org.springframework.cloud.gateway.handler.FilteringWebHandler@1cf6c08 2022-04-16 01:37:36.773 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.g.handler.FilteringWebHandler : Sorted gatewayFilterFactories: [[GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RemoveCachedBodyFilter@5d4e13e1}, order = -2147483648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.AdaptCachedBodyGlobalFilter@40230eb9}, order = -2147482648], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyWriteResponseFilter@19e0dffe}, order = -1], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardPathFilter@2676dc05}, order = 0], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.RouteToRequestUrlFilter@3e0fbeb5}, order = 10000], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.config.GatewayNoLoadBalancerClientAutoConfiguration$NoLoadBalancerClientFilter@4833eff3}, order = 10150], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.WebsocketRoutingFilter@b0a1231}, order = 2147483646], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.NettyRoutingFilter@7e9f2c32}, order = 2147483647], [GatewayFilterAdapter{delegate=org.springframework.cloud.gateway.filter.ForwardRoutingFilter@3976ebfa}, order = 2147483647]] 2022-04-16 01:37:36.788 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not found in cache 2022-04-16 01:37:36.797 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not available in FunctionCatalog or BeanFactory 2022-04-16 01:37:36.798 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server' is not found in cache 2022-04-16 01:37:36.798 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not found in cache 2022-04-16 01:37:36.800 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not available in FunctionCatalog or BeanFactory 2022-04-16 01:37:36.801 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rsocket-server/rr' is not found in cache 2022-04-16 01:37:36.801 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rr' is not found in cache 2022-04-16 01:37:36.813 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Registering function [rr] 2022-04-16 01:37:36.815 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Composed function rr<reactor.core.publisher.Mono<org.springframework.messaging.Message>, reactor.core.publisher.Mono<org.springframework.messaging.Message>>
2022-04-16 01:37:36.815 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Function 'rr' is not found in cache
2022-04-16 01:37:36.816 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.f.web.flux.FunctionHandlerMapping : Found function for POST: /rsocket-server/rr
2022-04-16 01:37:36.817 DEBUG 26179 --- [ctor-http-nio-2] o.s.c.f.web.flux.FunctionHandlerMapping : [0bc7ac77-1] Mapped to org.springframework.cloud.function.web.flux.FunctionController#post(ServerWebExchange, String)
2022-04-16 01:38:36.298 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Invoking function rr<reactor.core.publisher.Mono<org.springframework.messaging.Message>, reactor.core.publisher.Mono<org.springframework.messaging.Message>>
2022-04-16 01:38:36.310 DEBUG 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Converted Message: GenericMessage [payload=
Sachin, headers={content-length=8, host=localhost:8010, id=e72ccde3-727a-c226-2888-fc4c7850cfd6, X-Protobuf-Message=protos.payloads.request.SimpleRequest, uri=http://localhost:8010/rsocket-server/rr, accept-encoding=gzip, X-Protobuf-Schema=protos/payloads/request/simple-request.proto, user-agent=ReactorNetty/1.0.17, accept=/, Content-Type=application/x-protobuf, timestamp=1650053316298}] to: org.springframework.cloud.function.context.catalog.SimpleFunctionRegistry$OriginalMessageHolder@34dce368
2022-04-16 01:55:37.484 ERROR 26179 --- [ctor-http-nio-2] c.f.c.c.BeanFactoryAwareFunctionRegistry : Failed to invoke function 'rr'
java.lang.IllegalArgumentException: No decoder for java.lang.Object at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:288) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:272) ~[spring-messaging-5.3.18.jar:5.3.18] at io.rsocket.broker.client.spring.BrokerRSocketRequester$BrokerRequestSpec.retrieveMono(BrokerRSocketRequester.java:289) ~[rsocket-broker-client-spring-0.3.0.jar:na] at io.rsocket.broker.http.bridge.core.RequestResponseFunction.lambda$apply$4(RequestResponseFunction.java:67) ~[rsocket-broker-http-bridge-0.3.0-SNAPSHOT.jar:na] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:251) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:336) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:600) ~[reactor-netty-http-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[reactor-netty-core-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:266) ~[reactor-netty-http-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]
2022-04-16 01:55:37.504 ERROR 26179 --- [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [0bc7ac77-1] 500 Server Error for HTTP POST "/rr"
java.lang.IllegalArgumentException: No decoder for java.lang.Object at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: Error has been observed at the following site(s): __checkpoint ⇢ Handler org.springframework.cloud.function.web.flux.FunctionController#post(ServerWebExchange, String) [DispatcherHandler] checkpoint ⇢ org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter [DefaultWebFilterChain] *checkpoint ⇢ HTTP POST "/rr" [ExceptionHandlingWebHandler] Original Stack Trace: at org.springframework.messaging.rsocket.RSocketStrategies.decoder(RSocketStrategies.java:90) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:288) ~[spring-messaging-5.3.18.jar:5.3.18] at org.springframework.messaging.rsocket.DefaultRSocketRequester$DefaultRequestSpec.retrieveMono(DefaultRSocketRequester.java:272) ~[spring-messaging-5.3.18.jar:5.3.18] at io.rsocket.broker.client.spring.BrokerRSocketRequester$BrokerRequestSpec.retrieveMono(BrokerRSocketRequester.java:289) ~[rsocket-broker-client-spring-0.3.0.jar:na] at io.rsocket.broker.http.bridge.core.RequestResponseFunction.lambda$apply$4(RequestResponseFunction.java:67) ~[rsocket-broker-http-bridge-0.3.0-SNAPSHOT.jar:na] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:125) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:169) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onSubscribe(MonoFlatMap.java:110) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:96) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:64) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:157) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapInner.onNext(MonoFlatMap.java:249) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.complete(MonoIgnoreThen.java:292) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onNext(MonoIgnoreThen.java:187) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:151) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:251) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:336) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onNext(MonoPeekTerminal.java:180) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxDefaultIfEmpty$DefaultIfEmptySubscriber.onNext(FluxDefaultIfEmpty.java:101) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:127) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:107) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:295) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:337) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1816) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:159) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:260) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:142) ~[reactor-core-3.4.16.jar:3.4.16] at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:400) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:419) ~[reactor-netty-core-1.0.17.jar:1.0.17] at reactor.netty.http.server.HttpServerOperations.onInboundNext(HttpServerOperations.java:600) ~[reactor-netty-http-1.0.17.jar:1.0.17] at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:93) ~[reactor-netty-core-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at reactor.netty.http.server.HttpTrafficHandler.channelRead(HttpTrafficHandler.java:266) ~[reactor-netty-http-1.0.17.jar:1.0.17] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:327) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:299) ~[netty-codec-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:722) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:658) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:584) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:496) ~[netty-transport-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:986) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.75.Final.jar:4.1.75.Final] at java.base/java.lang.Thread.run(Thread.java:833) ~[na:na]