2017-08-31 3 views
0

je suis à l'écoute de file d'attente de lapin par ressort file d'attente et je reçois cette erreur:écouter la queue de lapin

org.springframework.amqp.rabbit.listener.exception.ListenerExecutionFailedException: Failed to invoke target method 'orchestrate' with argument type = [class [B], value = [{[[email protected]}] at org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter.invokeListenerMethod(MessageListenerAdapter.java:408) ~[spring-rabbit-1.5.6.RELEASE.jar!/:na]

Caused by: java.lang.NoSuchMethodException: com.....method([B)

ma méthode accepte la liste.

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

Répondre

0

Vous devez montrer votre testing.method().

En outre, le Jackson2JsonMessageConverter nécessite l'en-tête de type de contenu pour contenir json, tels que application/json.

Il a également besoin d'informations de type dans les en-têtes afin de connaître le type de conversion; sinon, vous aurez juste un Map. Vous pouvez utiliser l'annotation @RabbitListener à la place et mettre à niveau vers une version plus récente de Spring AMQP (la version actuelle est la version 1.7.3); les informations de type pour la méthode @RabbitListener sont transmises au convertisseur.