我正在通过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");
}
答案 0 :(得分:0)
您需要展示自己的testing.method()
。
此外,Jackson2JsonMessageConverter
要求内容类型标头包含json
,例如application/json
。
它还需要标题中的某些类型信息,因此它知道要转换为什么类型;否则你只会获得Map
。
请考虑使用@RabbitListener
注释,并升级到更新版本的Spring AMQP(当前版本为1.7.3); @RabbitListener
方法的类型信息将传送到转换器。