title: Rsocket Server exception: No handler for destination '' (destination does not pass from client to server)
body: <p>I wrote a little demo for RSocket message </p>
  
  <p>The problem is that I am unable to access the <code>Rsocket</code> endpoint,
  I get the following exception from the server:</p>
  
  <p>The Client-side:
  <strong>configuration:</strong></p>
  
  <pre class="lang-java prettyprint-override"><code>@Bean
  RSocket rSocket() {
      return RSocketFactory.connect()
              .mimeType(MimeTypeUtils.APPLICATION_JSON_VALUE, MimeTypeUtils.APPLICATION_JSON_VALUE)
              .frameDecoder(PayloadDecoder.ZERO_COPY)
              .transport(TcpClientTransport.create(new InetSocketAddress(7500)))
              .start()
              .block();
  }
  
  @Bean
  RSocketRequester requester(RSocketStrategies strategies) {
      return RSocketRequester.wrap(rSocket(), MimeTypeUtils.APPLICATION_JSON, MimeTypeUtils.APPLICATION_JSON, strategies);
  }
  </code></pre>
  
  <p><strong>controller:</strong></p>
  
  <pre class="lang-java prettyprint-override"><code>private final RSocketRequester requester;
  
  @GetMapping("/greet/{name}")
  public Publisher&lt;GreetingsResponse&gt; greet(@PathVariable String name) {
      return requester
              .route("hello")
              .data(new GreetingsRequest(name))
              .retrieveMono(GreetingsResponse.class);
  }
  </code></pre>
  
  <p>The server side(using spring Rsocket):
  <strong>yml:</strong></p>
  
  <pre><code>spring:
    rsocket:
      server:
        port: 7500
        transport: tcp
    main:
      lazy-initialization: true
  </code></pre>
  
  <p><strong>configuration:</strong></p>
  
  <pre class="lang-java prettyprint-override"><code>@MessageMapping("hello")
  Mono&lt;GreetingsResponse&gt; greet(GreetingsRequest request) {
      return Mono.just(new GreetingsResponse("Hello " + request.getName() + " @ " + Instant.now()));
  } 
  </code></pre>
  
  <p>I am pretty sure it has something to do with the new <code>wrap</code> function, <code>RSocketRequester.wrap</code> 
  as it accepts a new parameter <code>metadataMimeType</code>, I set it to application/Json,
  but it does not seems to work</p>
  
  <p><strong>stackTrace:</strong></p>
  
  <blockquote>
    <p>org.springframework.messaging.MessageDeliveryException: No handler for
    destination ''    at
    org.springframework.messaging.rsocket.annotation.support.RSocketMessageHandler.handleNoMatch(RSocketMessageHandler.java:312)
      at
    org.springframework.messaging.handler.invocation.reactive.AbstractMethodMessageHandler.getHandlerMethod(AbstractMethodMessageHandler.java:445)
      at
    org.springframework.messaging.handler.invocation.reactive.AbstractMethodMessageHandler.handleMessage(AbstractMethodMessageHandler.java:417)
      at
    org.springframework.messaging.rsocket.annotation.support.MessagingRSocket.lambda$handleAndReply$4(MessagingRSocket.java:173)
      at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:44)    at
    reactor.core.publisher.Mono.subscribe(Mono.java:3920)     at
    reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:207)
      at
    reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:80)
      at
    reactor.core.publisher.MonoFromFluxOperator.subscribe(MonoFromFluxOperator.java:74)
      at
    io.rsocket.RSocketResponder.handleRequestResponse(RSocketResponder.java:386)
      at io.rsocket.RSocketResponder.handleFrame(RSocketResponder.java:298)
      at
    reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160)
      at
    reactor.core.publisher.MonoFlatMapMany$FlatMapManyInner.onNext(MonoFlatMapMany.java:238)
      at
    reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drainRegular(FluxGroupBy.java:554)
      at
    reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.drain(FluxGroupBy.java:630)
      at
    reactor.core.publisher.FluxGroupBy$UnicastGroupedFlux.subscribe(FluxGroupBy.java:696)
      at reactor.core.publisher.Flux.subscribe(Flux.java:8000)    at
    reactor.core.publisher.MonoFlatMapMany$FlatMapManyMain.onNext(MonoFlatMapMany.java:184)
      at
    reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1582)
      at
    reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:316)
      at
    io.rsocket.internal.ClientServerInputMultiplexer.lambda$new$1(ClientServerInputMultiplexer.java:116)
      at
    reactor.core.publisher.LambdaSubscriber.onNext(LambdaSubscriber.java:160)
      at
    reactor.core.publisher.FluxGroupBy$GroupByMain.drainLoop(FluxGroupBy.java:380)
      at
    reactor.core.publisher.FluxGroupBy$GroupByMain.drain(FluxGroupBy.java:316)
      at
    reactor.core.publisher.FluxGroupBy$GroupByMain.onNext(FluxGroupBy.java:201)
      at
    reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
      at
    reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
      at
    reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:206)
      at
    reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:322)
      at
    reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:342)
      at
    reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:91)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
      at
    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
      at
    io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
      at
    io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
      at
    io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
      at
    io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1421)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
      at
    io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
      at
    io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
      at
    io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
      at
    io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
      at
    io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
      at
    io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
      at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)     at
    io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
      at
    io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
      at
    io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
      at java.base/java.lang.Thread.run(Thread.java:834)</p>
  </blockquote>