听兔子排队

时间:2017-08-31 20:47:58

标签: java rabbitmq spring-rabbit spring-rabbitmq

我正在通过spring-queue监听兔子队列,我收到了这个错误:

  

org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException:无法调用目标方法' orchestrate'参数类型= [class [B],value = [{[B @ 109a1f6c}]   在org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:408)〜[spring-rabbit-1.5.6.RELEASE.jar!/:na]

     

引起:java.lang.NoSuchMethodException:com。 .method([B)

我的方法接受List。

@Bean public SimpleRabbitListenerContainerFactory listenerContainer(){
SimpleRabbitListenerContainerFactory factory = new 
SimpleRabbitListenerContainerFactory();
factory.setConnectionFactory(rabbitConnectionFactory());
factory.setMessageConverter(new Jackson2JsonMessageConverter());
} 
@Bean public MessageListenerAdapter newTest() { 
return new MessageListenerAdapter(testing, "method"); 
}

1 个答案:

答案 0 :(得分:0)

您需要展示自己的testing.method()

此外,Jackson2JsonMessageConverter要求内容类型标头包含json,例如application/json

它还需要标题中的某些类型信息,因此它知道要转换为什么类型;否则你只会获得Map

请考虑使用@RabbitListener注释,并升级到更新版本的Spring AMQP(当前版本为1.7.3); @RabbitListener方法的类型信息将传送到转换器。