1、Consumer raised exception, processing can restart if the connection factory supports it. Exception summary: org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused

这个很明显,没有连接配置。增加一个配置文件。

(笨方式,测试用,实际可采用配置文件方式。)

  1. @Configuration
  2. public class RabbitMqConfig {
  3.  
  4. @Bean
  5. public ConnectionFactory connectionFactory() {
  6. CachingConnectionFactory connectionFactory = new CachingConnectionFactory();
  7. connectionFactory.setAddresses("192.168.10.10:5672");
  8. connectionFactory.setUsername("nei");
  9. connectionFactory.setPassword("zhao");
  10. connectionFactory.setVirtualHost("vhost_nei");
  11. connectionFactory.setPublisherConfirms(true);//消息确认
  12. connectionFactory.setPublisherReturns(true);
  13. return connectionFactory;
  14. }

  15.   //注意此下两个bean 有用 有坑时用到
  16. @Bean
  17. public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
  18. RabbitTemplate template = new RabbitTemplate(connectionFactory);
  19. template.setMessageConverter(new Jackson2JsonMessageConverter());
  20. return template;
  21. }
  22.  
  23. @Bean
  24. public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
  25. SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
  26. factory.setConnectionFactory(connectionFactory);
  27. factory.setMessageConverter(new Jackson2JsonMessageConverter());
  28. return factory;
  29. }
  30.  
  31. }

2、队列不存在

  1. org.springframework.amqp.rabbit.listener.QueuesNotAvailableException: Cannot prepare queue for listener. Either the queue doesn't exist or the broker will not allow us to use it.
  2. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:514)
  3. at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1280)
  4. at java.lang.Thread.run(Thread.java:745)
  5. Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[hello]
  6. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:587)
  7. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:486)
  8. ... 2 common frames omitted
  9. Caused by: java.io.IOException: null
  10. at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
  11. at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
  12. at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)
  13. at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:885)
  14. at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:61)
  15. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  16. at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
  17. at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  18. at java.lang.reflect.Method.invoke(Method.java:498)
  19. at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:917)
  20. at com.sun.proxy.$Proxy140.queueDeclarePassive(Unknown Source)
  21. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:566)
  22. ... 3 common frames omitted
  23. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50, method-id=10)
  24. at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
  25. at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)
  26. at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)
  27. at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)
  28. at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)
  29. ... 12 common frames omitted
  30. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50, method-id=10)
  31. at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:484)
  32. at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:321)
  33. at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)
  34. at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)
  35. at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)
  36. ... 1 common frames omitted
  37. 14:38:51.463 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.l.SimpleMessageListenerContainer - Stopping container from aborted consumer
  38. 14:38:51.478 [localhost-startStop-1] ERROR o.s.boot.SpringApplication - Application startup failed
  39. org.springframework.context.ApplicationContextException: Failed to start bean 'org.springframework.amqp.rabbit.config.internalRabbitListenerEndpointRegistry'; nested exception is org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup
  40. at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176)
  41. at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:51)
  42. at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346)
  43. at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149)
  44. at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112)
  45. at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:874)
  46. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)
  47. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544)
  48. at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
  49. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)
  50. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)
  51. at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
  52. at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151)
  53. at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:131)
  54. at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)
  55. at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)
  56. at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5183)
  57. at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)
  58. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)
  59. at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)
  60. at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  61. at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
  62. at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  63. at java.lang.Thread.run(Thread.java:745)
  64. Caused by: org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup
  65. at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doStart(SimpleMessageListenerContainer.java:820)
  66. at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:550)
  67. at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.startIfNecessary(RabbitListenerEndpointRegistry.java:272)
  68. at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.start(RabbitListenerEndpointRegistry.java:235)
  69. at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173)
  70. ... 23 common frames omitted
  71. Caused by: org.springframework.amqp.rabbit.listener.QueuesNotAvailableException: Cannot prepare queue for listener. Either the queue doesn't exist or the broker will not allow us to use it.
  72. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:514)
  73. at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1280)
  74. ... 1 common frames omitted
  75. Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[hello]
  76. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:587)
  77. at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:486)
  78. ... 2 common frames omitted

3、无限循环报 org.springframework.amqp.AmqpException: No method found for class 。。。  我的是找不到HashMap。实际应该是一些官方BUG,参照一位网友的解决方案。:

https://www.cnblogs.com/lazio10000/p/5559999.html (感谢)

  1. @Bean
  2. public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
  3. RabbitTemplate template = new RabbitTemplate(connectionFactory);
  4. template.setMessageConverter(new Jackson2JsonMessageConverter());
  5. return template;
  6. }
  7.  
  8. @Bean
  9. public SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {
  10. SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();
  11. factory.setConnectionFactory(connectionFactory);
  12. factory.setMessageConverter(new Jackson2JsonMessageConverter());
  13. return factory;
  14. }

消费者里添加  containerFactory="rabbitListenerContainerFactory"  @Payload

  1. @RabbitListener(queues = "task", containerFactory="rabbitListenerContainerFactory")
  2. public void process(@Payload String str) {
  3.  
  4. logger.info("============="+str);
  5. }

springBoot 整合 RabbitMQ 的坑的更多相关文章

  1. springboot学习笔记-6 springboot整合RabbitMQ

    一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿 ...

  2. 【SpringBoot系列5】SpringBoot整合RabbitMQ

    前言: 因为项目需要用到RabbitMQ,前几天就看了看RabbitMQ的知识,记录下SpringBoot整合RabbitMQ的过程. 给出两个网址: RabbitMQ官方教程:http://www. ...

  3. SpringBoot系列八:SpringBoot整合消息服务(SpringBoot 整合 ActiveMQ、SpringBoot 整合 RabbitMQ、SpringBoot 整合 Kafka)

    声明:本文来源于MLDN培训视频的课堂笔记,写在这里只是为了方便查阅. 1.概念:SpringBoot 整合消息服务 2.具体内容 对于异步消息组件在实际的应用之中会有两类: · JMS:代表作就是 ...

  4. 一篇学习完rabbitmq基础知识,springboot整合rabbitmq

    一   rabbitmq 介绍 MQ全称为Message Queue,即消息队列, RabbitMQ是由erlang语言开发,基于AMQP(Advanced MessageQueue 高级消息队列协议 ...

  5. 【MQ中间件】RabbitMQ -- SpringBoot整合RabbitMQ(3)

    1.前言说明 前面一篇博客中提到了使用原生java代码进行测试RabbitMQ实现多种交换机类型的队列场景.但是在项目中我们一般使用SpringBoot项目,而且RabbitMQ天生对于Spring的 ...

  6. 功能:SpringBoot整合rabbitmq,长篇幅超详细

    SpringBoot整合rabbitMq 一.介绍 消息队列(Message Queue)简称mq,本文将介绍SpringBoot整合rabbitmq的功能使用 队列是一种数据结构,就像排队一样,遵循 ...

  7. springboot整合rabbitmq实现生产者消息确认、死信交换器、未路由到队列的消息

    在上篇文章  springboot 整合 rabbitmq 中,我们实现了springboot 和rabbitmq的简单整合,这篇文章主要是对上篇文章功能的增强,主要完成如下功能. 需求: 生产者在启 ...

  8. Springboot 整合RabbitMq ,用心看完这一篇就够了

    该篇文章内容较多,包括有rabbitMq相关的一些简单理论介绍,provider消息推送实例,consumer消息消费实例,Direct.Topic.Fanout的使用,消息回调.手动确认等. (但是 ...

  9. RabbitMQ入门到进阶(Spring整合RabbitMQ&SpringBoot整合RabbitMQ)

    1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 2.为什么要用 MQ 1.流量消峰 没使用MQ 使用了MQ 2.应用解耦 ...

随机推荐

  1. vs2010更新EF模型时报错

    尝试从数据库进行更新时,遇到类型为“Microsoft.VSDesigner.Data.Local.ConnectionStringConverterServiceException”的异常.异常消息 ...

  2. php 文件下载代码

    1.对于一般 $file = "/tmp/dummy.tar.gz"; header("Content-type: application/octet-stream&qu ...

  3. 求出每个team粉丝数最多的3个国家

    有这么个表 fans(team,nationality,fanCount) 'Barcelona','Germany',12000'Barcelona','Spain',18000'Barcelona ...

  4. error C2678: 二进制“+”: 没有找到接受“const char [22]”类型的左操作数的运算符(或没有可接受的转换)没有与这些操作数匹配的“+”运算符

    错误:没有与这些操作数匹配的“+”运算符,操作数类型为const char [20]+CString 分析原因:其提示操作数类型为const char [20]+CString 可见是类型有问题 故加 ...

  5. STL容器:list双向链表学习

    list是一个双向列表容器,完成了标准C++数据结构中链表的所有功能; list与vector和deque类似,只不过其中的对象提供了对元素的随机访问. STL以双向链表的方式实现list,访问需要从 ...

  6. Angular2 Observable 可观察对象

    可观察对象支持在应用中的发布者和订阅者之间传递消息.在需要进行事件处理,异步编程和处理多值的时候,可观察对象相对其他技术有显著的优点. 可观察对象是声明式的 —— 也就是说,虽然你定义了一个用于发布值 ...

  7. 《C#高级编程》学习笔记----c#内存管理--栈VS堆

    本文转载自Netprawn,原文英文版地址 尽管在.net framework中我们不太需要关注内存管理和垃圾回收这方面的问题,但是出于提高我们应用程序性能的目的,在我们的脑子里还是需要有这方面的意识 ...

  8. Http协议原理解析第一篇

    一:http的由来: OSI模型把网络通信分成七层:物理层.数据链路层.网络层.传输层.会话层.表示层和应用层,对于开发网络应用人员来说,一般把网络分成五层,这样比较容易理解.这五层为:物理层.数据链 ...

  9. WCF入门(十)——服务对象模型

    当发生一次WCF请求-响应操作时,会经过如下几个步骤 WCF Client想WCF Server发送一个服务请求 WCF Server创建WCF服务对象 WCF Server调用WCF服务对象接口,将 ...

  10. VC/MFC中通过CWebPage类调用javascript函数(给js函数传参,并取得返回值)

    转自:http://www.cnblogs.com/javaexam2/archive/2012/07/14/2632959.html ①需要一个别人写好的类CWebPage,将其对于的两个文件Web ...