Spring RabbitMQ无效监听器



我是Spring RabbitMQ的新手。我试图发送我的chatmessage对象到RabbitMQ,但在RabbitMQ配置期间,我得到下面的错误:

org.springframework.amqp.rabbit.listener.exception。FatalListenerExecutionException:无效的侦听器org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer AsyncMessageProcessingConsumer.run美元(SimpleMessageListenerContainer.java: 1142)在java.lang.Thread.run(来源未知)org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException:调用目标方法'handleMessage'失败,参数类型= [class [B],值= [{[B@6bced6b0}]org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.invokeListenerMethod (MessageListenerAdapter.java: 348)org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.onMessage (MessageListenerAdapter.java: 253)org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener (AbstractMessageListenerContainer.java: 756)org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener (AbstractMessageListenerContainer.java: 679)org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access 001美元(SimpleMessageListenerContainer.java: 83)org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer invokelistener 1.美元(SimpleMessageListenerContainer.java: 170)org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.invokeListener (SimpleMessageListenerContainer.java: 1257)在org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener

RabbitConfiguration:

@Bean
TopicExchange directExchange(){
    return new TopicExchange(MessagingBusNamespace.CHAT_MESSAGE_TOPIC_EXCHANGE);
}
@Bean
Binding binding(final Queue queue, final Exchange exchange){
    return BindingBuilder.bind(queue).to(exchange).with(MessagingBusNamespace.ROUTE_KEY).noargs();
}
@Bean
HTTPChatMessageReceiver receiver(){
    return new HTTPChatMessageReceiver();
}
@Bean
MessageListenerAdapter messageListenerAdapter(){
    return new MessageListenerAdapter(receiver(), "handleMessage");
}
@Bean
SimpleMessageListenerContainer simpleMessageListenerContainer(final ConnectionFactory connectionFactory,
                                                                     final MessageListenerAdapter messageListenerAdapter){
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.setQueueNames(MessagingBusNamespace.CHAT_MESSAGE_QUEUE);
    container.setMessageListener(messageListenerAdapter);
    return container;
}

处理程序类:

public class HTTPChatMessageReceiver {
   public HTTPChatMessageReceiver() {
    // TODO Auto-generated constructor stub
   }
   public void handleMessage(ChatMessage message) {
   }
}

我终于找到了问题所在。这个问题与MessagingListenerAdapter无关。这与我如何定义队列名有关。如果我声明队列,例如"queue。, Spring抛出上面的异常。当我把队列名从"queue。"聊天"到"messaginggateway-chat-queue",应用程序成功启动。

谢谢

最新更新