spring-boot(rabbitmq) Failed to check/redeclare auto-delete queue(s)

2019-10-14 16:08:05 [AMQP Connection 10.210.1.20:5672] WARN  com.rabbitmq.client.impl.ForgivingExceptionHandler - An unexpected connection driver error occured (Exception message: Socket closed)
2019-10-14 16:08:05 [SimpleAsyncTaskExecutor-1] ERROR o.s.a.r.listener.SimpleMessageListenerContainer - Failed to check/redeclare auto-delete queue(s).
org.springframework.amqp.AmqpIOException: java.io.IOException
        at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71)
        at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:407)
        at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:588)
        at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1438)
        at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1419)
        at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1395)
        at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:368)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.redeclareElementsIfNecessary(SimpleMessageListenerContainer.java:1241)
        at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1502)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.io.IOException: null
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:124)
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:120)
        at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:142)
        at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:407)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1159)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1109)
        at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1049)
        at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:367)
        ... 8 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - vhost /testVHost not found, class-id=10, method-id=40)
        at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
        at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
        at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:443)
        at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:263)
        at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:136)
        ... 13 common frames omitted

注意此日誌中輸出的最後一個caused by輸出:(reply-code=530, reply-text=NOT_ALLOWED - vhost /testVHost not found, class-id=10, method-id=40),原因是vhost沒找到,在yml中配置是,virtual-host屬性配置多加了個‘/’去掉即可。去掉後如下:

spring.rabbitmq:
  addresses: amqp://abc:[email protected]:5672,amqp://abc:[email protected]:5672,amqp://abc:[email protected]:5672
  publisher-confirms: true
  virtual-host: testVHost  #注意此處前面沒有/,也就是rabbit web管理界面上顯示的vhost名字,在沒有自定義vhost時,默認的vhost是 ‘/’ 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章