title: convertSendAndReceive is not working when the queue is Shoveled
body: <p>FYI, I'm a newbie with RabbitMQ. </p>
  
  <p>I have this use case for my application for which I'm trying to use RabbitMQ:</p>
  
  <ul>
  <li>Producer sends some message to the queue </li>
  <li>Consumer process and send a reply</li>
  <li>Based on the reply Producer acts on</li>
  </ul>
  
  <p>For the above scenario, I used convertSendAndReceive which works like a charm when both producer and consumer are in same RabbitMQ server. But the same does not work when the queue is Shoveled.</p>
  
  <p>Please let me know if I using the wrong method/configuration w.r.t RabbitMQ.</p>
  
  <p>Thanks in advance. </p>
  
  <p>Adding Code </p>
  
  <p>Consumer</p>
  
  <pre><code>public static void main(String[] args) throws InterruptedException {
         ConnectionFactory cf = new CachingConnectionFactory("10.223.19.89");        
  
          // set up the queue, exchange, binding on the broker
          RabbitAdmin admin = new RabbitAdmin(cf);
          Queue queue = new Queue("myQueue");
          Queue queueReply = new Queue("myQueue_reply");
  
          admin.declareQueue(queue);
          admin.declareQueue(queueReply);
          TopicExchange exchange = new TopicExchange("myExchange");
  
          admin.declareExchange(exchange);
          admin.declareBinding(
              BindingBuilder.bind(queue).to(exchange).with("foo.*"));
          admin.declareBinding(
                  BindingBuilder.bind(queueReply).to(exchange).with("foo.*"));
  
          SimpleMessageListenerContainer container =
                  new SimpleMessageListenerContainer(cf);
          Object listener = new Object() {
              public String handleMessage(String foo) {            
                  return foo + "test";
              }
          };
  
          MessageListenerAdapter adapter = new MessageListenerAdapter(listener);
  
          container.setMessageListener(adapter);          
          container.setQueueNames("myQueue");         
          container.start();
  
  }
  </code></pre>
  
  <hr>
  
  <p>Producer</p>
  
  <pre><code>public void run()
  {  
  
      Thread t = Thread.currentThread();
      ConnectionFactory cf = new CachingConnectionFactory("10.223.19.93");
  
      RabbitTemplate template = new RabbitTemplate(cf);
      template.setExchange("myExchange");
      template.setRoutingKey("foo.bar");
      Queue queueReply = new Queue("myQueue_reply");
      template.setReplyQueue(queueReply);     
  
      Object test = template.convertSendAndReceive("Hello world");
      System.out.println(test.toString());
  
  }
  
  public static void main(String[] args) throws InterruptedException {
      for(int i=0; i&lt; 5; i++)
      {
          Thread t = new Thread(new SendReceiveThread());
          t.setName("Thread # " + i);
          t.start();      
          Thread.sleep(100);
      }
  
  }
  </code></pre>