title: Using multiple rabbit listener annotations. Only one is registering. Other throws exception
body: <p>I created two queue configurations each having its own <code>@RabbitListener</code> annotated methods.</p>
  
  <pre><code>@Configuration
  @EnableRabbit
  public class TestQueue extends QueueConfiguration {
  
  public String getQueueName() {
     return "testQueue";
  }
  
  public String getRoutingKey() {
     return "testKey";
  }
  
  @RabbitListener(queues = "testQueue")
  public void receive(Message message) { ... }
  
  }
  </code></pre>
  
  <p>Another queue configuration</p>
  
  <pre><code>@Configuration
  @EnableRabbit
  public class AnotherTestQueue extends QueueConfiguration {
  
  public String getQueueName() {
     return "anotherTestQueue";
  }
  
  public String getRoutingKey() {
     return "anotherTestKey";
  }
  
  @RabbitListener(queues = "anotherTestQueue")
  public void receive(Message message) { ... }
  
  }
  </code></pre>
  
  <p>Here is the base queue configuration where I create queue, exchange and binding:</p>
  
  <pre><code>public abstract class QueueConfiguration {
  
  @Bean
  public Queue mainQueue() {
     return new Queue(getQueueName());
  }
  
  @Bean
  public DirectExchange mainExchange() {
     return new DirectExchange("main.exchange");
  }
  
  @Bean
  public Binding mainExchangeBinding() {
     return BindingBuilder.build(mainQueue()).to(mainExchange()).with(getRoutingKey());
  }
  
  // getQueueName() and getRoutingKey() are abstract methods
  
  }
  </code></pre>
  
  <p>Now the common configuration class</p>
  
  <pre><code>@Configuration
  public class CommonConfiguration {
  
  @Bean
      public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory,
              WfmMessageListener listener) {
          SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
          factory.setConnectionFactory(connectionFactory);
          factory.setMessageConverter(new Jackson2JsonMessageConverter());
          factory.setAdviceChain(listener);
          return factory;
      }
  
  @Bean
      public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
          RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
          rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
          return rabbitTemplate;
      }
  
      @Bean
      public RabbitAdmin rabbitAdmin(ConnectionFactory connectionFactory) {
          return new RabbitAdmin(connectionFactory);
      }
  }
  </code></pre>
  
  <p>When I start the app, I get the following error:</p>
  
  <blockquote>
    <p>Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method(reply-code=404, reply-text=NOT_FOUND - no queue 'testQueue' in vhost '/', class-id=50, method-id=10)
        at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:505) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:336) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:143) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:90) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:634) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:47) ~[amqp-client-4.0.3.jar:4.0.3]
        at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:572) ~[amqp-client-4.0.3.jar:4.0.3]</p>
  </blockquote>
  
  <p>I tried with just <strong>one</strong> queue configuration, it works fine! 
  When I have more than one rabbit listener, it is throwing this error. Kindly help.</p>