Spring Boot (十三)集成RabbitMQ

来源:互联网 发布:手机越狱软件下载 编辑:程序博客网 时间:2024/04/30 13:02

项目GitHub地址 :

https://github.com/FrameReserve/TrainingBoot


Spring Boot (十三)集成RabbitMQ,标记地址:

https://github.com/FrameReserve/TrainingBoot/releases/tag/0.1.0



pom.xml

[html] view plain copy
  1. <!-- Rabbit MQ -->  
  2.         <dependency>  
  3.             <groupId>org.springframework.boot</groupId>  
  4.             <artifactId>spring-boot-starter-amqp</artifactId>  
  5.         </dependency>  


Spring Boot配置文件application.yml:

src/main/resources/application.yml

[html] view plain copy
  1. rabbitmq:  
  2.     host: 192.168.2.71  
  3.     port: 5672  
  4.     username: hxb  
  5.     password: hxb  


RabbitMQ接收方法:

src/main/java/com/training/rabbitmq/receiver/DemoRabbitMqReceiver.java

[java] view plain copy
  1. package com.training.rabbitmq.receiver;  
  2.   
  3. import org.springframework.amqp.rabbit.annotation.RabbitHandler;  
  4. import org.springframework.amqp.rabbit.annotation.RabbitListener;  
  5. import org.springframework.stereotype.Component;  
  6.   
  7. /** 
  8.  * 消息队列接收类 
  9.  */  
  10. @Component  
  11. @RabbitListener(queues = "hello")  
  12. public class DemoRabbitMqReceiver {  
  13.   
  14.     @RabbitHandler  
  15.     public void process(String content) {  
  16.         System.out.println("Receiver : " + content);  
  17.     }  
  18.   
  19. }  



RabbitMQ 发送方法:

src/main/java/com/training/rabbitmq/sender/DemoRabbitMqSender.java

[java] view plain copy
  1. package com.training.rabbitmq.sender;  
  2.   
  3. import org.springframework.amqp.core.AmqpTemplate;  
  4. import org.springframework.beans.factory.annotation.Autowired;  
  5. import org.springframework.stereotype.Component;  
  6.   
  7. @Component  
  8. public class DemoRabbitMqSender {  
  9.   
  10.     @Autowired  
  11.     private AmqpTemplate rabbitTemplate;  
  12.   
  13.     public void send(String content) {  
  14.         System.out.println("Sender : " + content);  
  15.         this.rabbitTemplate.convertAndSend("hello", content);  
  16.     }  
  17.       
  18. }  


测试 Rabbit MQ:

src/main/java/com/training/rabbitmq/controller/DemoRabbitMqController.java

[java] view plain copy
  1. package com.training.rabbitmq.controller;  
  2.   
  3. import io.swagger.annotations.ApiOperation;  
  4.   
  5. import javax.servlet.http.HttpSession;  
  6.   
  7. import org.springframework.beans.factory.annotation.Autowired;  
  8. import org.springframework.web.bind.annotation.RequestMapping;  
  9. import org.springframework.web.bind.annotation.RequestMethod;  
  10. import org.springframework.web.bind.annotation.ResponseBody;  
  11. import org.springframework.web.bind.annotation.RestController;  
  12.   
  13. import com.training.core.dto.ResultDataDto;  
  14. import com.training.rabbitmq.sender.DemoRabbitMqSender;  
  15.   
  16. /** 
  17.  * 测试Rabbit MQ 
  18.  */  
  19. @RestController  
  20. @RequestMapping(value="/rabbitmq")  
  21. public class DemoRabbitMqController {  
  22.   
  23.     @Autowired  
  24.     private DemoRabbitMqSender demoRabbitMqSender;  
  25.       
  26.     /** 
  27.      * 发送测试消息队列 
  28.      */  
  29.     @ApiOperation(value="发送测试消息队列", notes="addEntity")  
  30.     @RequestMapping(value = "/addRabbitMq", method = RequestMethod.GET)  
  31.     public @ResponseBody ResultDataDto addEntity(HttpSession httpSession) {  
  32.         demoRabbitMqSender.send("jkljklkjljjkljl");  
  33.         return ResultDataDto.addAddSuccess();  
  34.     }  
  35.       
  36. }  



Spring Boot 启动异常:

[html] view plain copy
  1. 14:38:51.447 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.l.SimpleMessageListenerContainer - Consumer received fatal exception on startup  
  2. 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.  
  3.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:514)  
  4.     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1280)  
  5.     at java.lang.Thread.run(Thread.java:745)  
  6. Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[hello]  
  7.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:587)  
  8.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:486)  
  9.     ... 2 common frames omitted  
  10. Caused by: java.io.IOException: null  
  11.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)  
  12.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)  
  13.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)  
  14.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:885)  
  15.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:61)  
  16.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  17.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  18.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  19.     at java.lang.reflect.Method.invoke(Method.java:498)  
  20.     at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:917)  
  21.     at com.sun.proxy.$Proxy140.queueDeclarePassive(Unknown Source)  
  22.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:566)  
  23.     ... 3 common frames omitted  
  24. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  25.     at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)  
  26.     at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)  
  27.     at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)  
  28.     at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)  
  29.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)  
  30.     ... 12 common frames omitted  
  31. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  32.     at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:484)  
  33.     at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:321)  
  34.     at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)  
  35.     at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)  
  36.     at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)  
  37.     ... 1 common frames omitted  
  38. 14:38:51.463 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.l.SimpleMessageListenerContainer - Stopping container from aborted consumer  
  39. 14:38:51.478 [localhost-startStop-1] ERROR o.s.boot.SpringApplication - Application startup failed  
  40. 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  
  41.     at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176)  
  42.     at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:51)  
  43.     at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346)  
  44.     at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149)  
  45.     at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112)  
  46.     at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:874)  
  47.     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)  
  48.     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544)  
  49.     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)  
  50.     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)  
  51.     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)  
  52.     at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)  
  53.     at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151)  
  54.     at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:131)  
  55.     at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)  
  56.     at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)  
  57.     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5183)  
  58.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  59.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)  
  60.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)  
  61.     at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
  62.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  
  63.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  
  64.     at java.lang.Thread.run(Thread.java:745)  
  65. Caused by: org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup  
  66.     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doStart(SimpleMessageListenerContainer.java:820)  
  67.     at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:550)  
  68.     at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.startIfNecessary(RabbitListenerEndpointRegistry.java:272)  
  69.     at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.start(RabbitListenerEndpointRegistry.java:235)  
  70.     at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173)  
  71.     ... 23 common frames omitted  
  72. 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.  
  73.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:514)  
  74.     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1280)  
  75.     ... 1 common frames omitted  
  76. Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[hello]  
  77.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:587)  
  78.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:486)  
  79.     ... 2 common frames omitted  
  80. Caused by: java.io.IOException: null  
  81.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)  
  82.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)  
  83.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)  
  84.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:885)  
  85.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:61)  
  86.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  87.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  88.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  89.     at java.lang.reflect.Method.invoke(Method.java:498)  
  90.     at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:917)  
  91.     at com.sun.proxy.$Proxy140.queueDeclarePassive(Unknown Source)  
  92.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:566)  
  93.     ... 3 common frames omitted  
  94. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  95.     at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)  
  96.     at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)  
  97.     at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)  
  98.     at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)  
  99.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)  
  100.     ... 12 common frames omitted  
  101. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  102.     at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:484)  
  103.     at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:321)  
  104.     at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)  
  105.     at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)  
  106.     at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)  
  107.     ... 1 common frames omitted  
  108. 14:38:51.478 [Catalina-startStop-1] ERROR o.apache.catalina.core.ContainerBase - A child container failed during start  
  109. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]  
  110.     at java.util.concurrent.FutureTask.report(FutureTask.java:122)  
  111.     at java.util.concurrent.FutureTask.get(FutureTask.java:192)  
  112.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)  
  113.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)  
  114.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  115.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)  
  116.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)  
  117.     at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
  118.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  
  119.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  
  120.     at java.lang.Thread.run(Thread.java:745)  
  121. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]  
  122.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)  
  123.     ... 6 common frames omitted  
  124. Caused by: 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  
  125.     at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:176)  
  126.     at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:51)  
  127.     at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:346)  
  128.     at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:149)  
  129.     at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:112)  
  130.     at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:874)  
  131.     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144)  
  132.     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:544)  
  133.     at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)  
  134.     at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:761)  
  135.     at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:371)  
  136.     at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)  
  137.     at org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:151)  
  138.     at org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:131)  
  139.     at org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:86)  
  140.     at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169)  
  141.     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5183)  
  142.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  143.     ... 6 common frames omitted  
  144. Caused by: org.springframework.amqp.AmqpIllegalStateException: Fatal exception on listener startup  
  145.     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doStart(SimpleMessageListenerContainer.java:820)  
  146.     at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.start(AbstractMessageListenerContainer.java:550)  
  147.     at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.startIfNecessary(RabbitListenerEndpointRegistry.java:272)  
  148.     at org.springframework.amqp.rabbit.listener.RabbitListenerEndpointRegistry.start(RabbitListenerEndpointRegistry.java:235)  
  149.     at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:173)  
  150.     ... 23 common frames omitted  
  151. 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.  
  152.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:514)  
  153.     at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1280)  
  154.     ... 1 common frames omitted  
  155. Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[hello]  
  156.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:587)  
  157.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:486)  
  158.     ... 2 common frames omitted  
  159. Caused by: java.io.IOException: null  
  160.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)  
  161.     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)  
  162.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124)  
  163.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:885)  
  164.     at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:61)  
  165.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  166.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  167.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  168.     at java.lang.reflect.Method.invoke(Method.java:498)  
  169.     at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:917)  
  170.     at com.sun.proxy.$Proxy140.queueDeclarePassive(Unknown Source)  
  171.     at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:566)  
  172.     ... 3 common frames omitted  
  173. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  174.     at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)  
  175.     at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33)  
  176.     at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:361)  
  177.     at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:226)  
  178.     at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118)  
  179.     ... 12 common frames omitted  
  180. Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=404reply-text=NOT_FOUND - no queue 'hello' in vhost '/', class-id=50method-id=10)  
  181.     at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:484)  
  182.     at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:321)  
  183.     at com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:144)  
  184.     at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:91)  
  185.     at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:560)  
  186.     ... 1 common frames omitted  
  187. 14:38:51.478 [main] ERROR o.apache.catalina.core.ContainerBase - A child container failed during start  
  188. java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]  
  189.     at java.util.concurrent.FutureTask.report(FutureTask.java:122)  
  190.     at java.util.concurrent.FutureTask.get(FutureTask.java:192)  
  191.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:911)  
  192.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)  
  193.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  194.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)  
  195.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  196.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)  
  197.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  198.     at org.apache.catalina.startup.Catalina.start(Catalina.java:655)  
  199.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  200.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  201.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  202.     at java.lang.reflect.Method.invoke(Method.java:498)  
  203.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)  
  204.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)  
  205. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]  
  206.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)  
  207.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1403)  
  208.     at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1393)  
  209.     at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
  210.     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)  
  211.     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)  
  212.     at java.lang.Thread.run(Thread.java:745)  
  213. Caused by: org.apache.catalina.LifecycleException: A child container failed during start  
  214.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:920)  
  215.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:890)  
  216.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  217.     ... 6 common frames omitted  
  218. 14:38:51.478 [main] ERROR org.apache.catalina.startup.Catalina - The required Server component failed to start so Tomcat is unable to start.  
  219. org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]  
  220.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)  
  221.     at org.apache.catalina.startup.Catalina.start(Catalina.java:655)  
  222.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  223.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  224.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  225.     at java.lang.reflect.Method.invoke(Method.java:498)  
  226.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)  
  227.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)  
  228. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]  
  229.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)  
  230.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:791)  
  231.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  232.     ... 7 common frames omitted  
  233. Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]  
  234.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:158)  
  235.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)  
  236.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  237.     ... 9 common frames omitted  
  238. Caused by: org.apache.catalina.LifecycleException: A child container failed during start  
  239.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:920)  
  240.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)  
  241.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:152)  
  242.     ... 11 common frames omitted  
  243. 14:38:51.494 [main] ERROR o.a.coyote.http11.Http11NioProtocol - Failed to destroy end point associated with ProtocolHandler ["http-nio-8080"]  
  244. java.lang.NullPointerException: null  
  245.     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:206)  
  246.     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:352)  
  247.     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:865)  
  248.     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:645)  
  249.     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1072)  
  250.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  251.     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:571)  
  252.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  253.     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:881)  
  254.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  255.     at org.apache.catalina.startup.Catalina.start(Catalina.java:659)  
  256.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  257.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  258.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  259.     at java.lang.reflect.Method.invoke(Method.java:498)  
  260.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)  
  261.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)  
  262. 14:38:51.494 [main] ERROR org.apache.coyote.ajp.AjpNioProtocol - Failed to destroy end point associated with ProtocolHandler ["ajp-nio-8009"]  
  263. java.lang.NullPointerException: null  
  264.     at org.apache.tomcat.util.net.NioEndpoint.releaseCaches(NioEndpoint.java:206)  
  265.     at org.apache.tomcat.util.net.NioEndpoint.unbind(NioEndpoint.java:352)  
  266.     at org.apache.tomcat.util.net.AbstractEndpoint.destroy(AbstractEndpoint.java:865)  
  267.     at org.apache.coyote.AbstractProtocol.destroy(AbstractProtocol.java:645)  
  268.     at org.apache.catalina.connector.Connector.destroyInternal(Connector.java:1072)  
  269.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  270.     at org.apache.catalina.core.StandardService.destroyInternal(StandardService.java:571)  
  271.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  272.     at org.apache.catalina.core.StandardServer.destroyInternal(StandardServer.java:881)  
  273.     at org.apache.catalina.util.LifecycleBase.destroy(LifecycleBase.java:302)  
  274.     at org.apache.catalina.startup.Catalina.start(Catalina.java:659)  
  275.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  276.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)  
  277.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
  278.     at java.lang.reflect.Method.invoke(Method.java:498)  
  279.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:355)  
  280.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:495)  



若报如上错误,说明消息队列不存在,

解决方案,有两个:

1、请在控制台添加消息队列。2、配置RabbitMQ启动配置:AmqpInitConfig










启动正常发送。


配置类:

@Configuration@ConditionalOnProperty(prefix = "spring.rabbitmq",name = "enable", matchIfMissing = false)public class AmqpInitConfig {    // 队列名称    final static String queueName="hello";    @Bean    public Queue queue(){        return new Queue(queueName,false);    }
}