Spring AMQP接收器的参数类型错误

Spring AMQP接收器的参数类型错误,spring,rabbitmq,spring-amqp,Spring,Rabbitmq,Spring Amqp,我的Spring AMQP应用程序在启动时记录了以下异常: org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Failed to invoke target method 'receiveMessage' with argument type = [class [B], value = [{[B@660cff44}] 从我的搜索中,我了解到这是因为类与消息类型不兼容?然而,我

我的Spring AMQP应用程序在启动时记录了以下异常:

org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Failed to invoke target method 'receiveMessage' with argument type = [class [B], value = [{[B@660cff44}]
从我的搜索中,我了解到这是因为类与消息类型不兼容?然而,我看不到这是在哪里

以下是相关代码段:

@Bean
public MessageConverter jsonMessageConverter(){
    return new Jackson2JsonMessageConverter();
}

@Bean
Queue queue() {
    return new Queue(config.getAMQPResultsQueue(), false);
}

@Bean
TopicExchange exchange() {
    return new TopicExchange(config.getAMQPResultsExchange());
}

@Bean
Binding binding(Queue queue, TopicExchange exchange) {
    return BindingBuilder.bind(queue).to(exchange).with("#");
}

@Bean
SimpleMessageListenerContainer container(ConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter) {
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.setQueueNames(config.getAMQPResultsQueue());
    container.setMessageListener(listenerAdapter);
    container.setMessageConverter(jsonMessageConverter());
    return container;
}

@Bean
MessageListenerAdapter listenerAdapter(Receiver receiver) {
    return new MessageListenerAdapter(receiver, "receiveMessage");
}

我已尝试将消息类设置为Byte[],但结果相同。我肯定我错过了一些简单的东西——只是不确定它是什么

Jackson2JsonMessageConverter仅在消息具有包含json的content_类型头时才执行转换

否则,它将返回字节[]

字节[]也不会转换为字节[]。设置标题或使用字节[]。

只有当消息具有包含json的内容类型标题时,Jackson2JsonMessageConverter才会执行转换

否则,它将返回字节[]


字节[]也不会转换为字节[]。设置标头或使用字节[]。

谢谢您,但是,当应用程序启动时,而不是当它收到消息时,会引发异常-我猜可能是消息已经在队列中-这似乎解决了问题。我只是想说,像您这样的开发人员花时间以您所做的方式帮助他人,我是多么感激。它非常慷慨。谢谢你,但是异常似乎是在应用程序启动时抛出的——而不是在它收到消息时抛出的——我猜消息可能已经在队列中了——这似乎解决了问题。我只是想说,像您这样的开发人员花时间以您所做的方式帮助他人,我是多么感激。这是难以置信的慷慨。
@Component
public class Receiver {
    public void receiveMessage(String message) {
        System.out.println("Received <" + message + ">");
    }
}