解決SpringMVC項(xiàng)目連接RabbitMQ出錯(cuò)的問(wèn)題
在第一次啟動(dòng)項(xiàng)目的時(shí)候,由于使用了RabbitMQ的默認(rèn)guest賬號(hào),怎么也登不進(jìn)去,后來(lái)還是在Admin重新創(chuàng)建了一個(gè)其他的賬號(hào),然后開(kāi)啟所有的權(quán)限,最后在配置文件中修改了賬號(hào),這樣才成功連接rabbitmq。
但是到今天重新啟動(dòng)項(xiàng)目的時(shí)候,想試試guest賬號(hào)還行不行,嘗試了一次,居然可以重新啟動(dòng)了,吃驚!
在此記錄,以防今后忘記。
補(bǔ)充:解決rabbitmq無(wú)法連接導(dǎo)致的錯(cuò)誤
最近學(xué)寫(xiě)項(xiàng)目的時(shí)候用到rabbitmq始終無(wú)法連接,踩了挺多坑的,希望分享出來(lái),讓大家少踩一些. 錯(cuò)誤提示是這樣的:
org.springframework.amqp.AmqpIOException: java.io.IOException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:71) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:476) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:614) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:240) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1797) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1771) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1752) ~[spring-rabbit-2.0.3.RELEASE.jar:2.0.3.RELEASE] at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.getVersion(RabbitHealthIndicator.java:48) ~[spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.amqp.RabbitHealthIndicator.doHealthCheck(RabbitHealthIndicator.java:44) ~[spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:84) ~[spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.health.CompositeHealthIndicator.health(CompositeHealthIndicator.java:68) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.health.HealthEndpoint.health(HealthEndpoint.java:47) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_202] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_202] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202] at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:223) [spring-core-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:76) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:61) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:104) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.actuate.endpoint.jmx.EndpointMBean.invoke(EndpointMBean.java:93) [spring-boot-actuator-2.0.2.RELEASE.jar:2.0.2.RELEASE] at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) [na:1.8.0_202] at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) [na:1.8.0_202] at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468) [na:1.8.0_202] at javax.management.remote.rmi.RMIConnectionImpl.access300 ( R M I C o n n e c t i o n I m p l . j a v a : 76 ) [ n a : 1.8. 0 2 02 ] a t j a v a x . m a n a g e m e n t . r e m o t e . r m i . R M I C o n n e c t i o n I m p l 300(RMIConnectionImpl.java:76) [na:1.8.0_202] at javax.management.remote.rmi.RMIConnectionImpl300(RMIConnectionImpl.java:76)[na:1.8.0 2 02]atjavax.management.remote.rmi.RMIConnectionImplPrivilegedOperation.run(RMIConnectionImpl.java:1309) [na:1.8.0_202] at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401) [na:1.8.0_202] at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829) [na:1.8.0_202] at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source) ~[na:na] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_202] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_202] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:357) [na:1.8.0_202] at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_202] at sun.rmi.transport.Transport1. r u n ( T r a n s p o r t . j a v a : 197 ) [ n a : 1.8. 0 2 02 ] a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) [ n a : 1.8. 0 2 02 ] a t s u n . r m i . t r a n s p o r t . T r a n s p o r t . s e r v i c e C a l l ( T r a n s p o r t . j a v a : 196 ) [ n a : 1.8. 0 2 02 ] a t s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t . h a n d l e M e s s a g e s ( T C P T r a n s p o r t . j a v a : 573 ) [ n a : 1.8. 0 2 02 ] a t s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t 1.run(Transport.java:197) [na:1.8.0_202] at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_202] at sun.rmi.transport.Transport.serviceCall(Transport.java:196) [na:1.8.0_202] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573) [na:1.8.0_202] at sun.rmi.transport.tcp.TCPTransport1.run(Transport.java:197)[na:1.8.0 2 02]atjava.security.AccessController.doPrivileged(NativeMethod)[na:1.8.0 2 02]atsun.rmi.transport.Transport.serviceCall(Transport.java:196)[na:1.8.0 2 02]atsun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:573)[na:1.8.0 2 02]atsun.rmi.transport.tcp.TCPTransportConnectionHandler.run0(TCPTransport.java:834) [na:1.8.0_202] at sun.rmi.transport.tcp.TCPTransportC o n n e c t i o n H a n d l e r . l a m b d a ConnectionHandler.lambdaConnectionHandler.lambdarun0 ( T C P T r a n s p o r t . j a v a : 688 ) [ n a : 1.8. 0 2 02 ] a t j a v a . s e c u r i t y . A c c e s s C o n t r o l l e r . d o P r i v i l e g e d ( N a t i v e M e t h o d ) [ n a : 1.8. 0 2 02 ] a t s u n . r m i . t r a n s p o r t . t c p . T C P T r a n s p o r t 0(TCPTransport.java:688) [na:1.8.0_202] at java.security.AccessController.doPrivileged(Native Method) [na:1.8.0_202] at sun.rmi.transport.tcp.TCPTransport0(TCPTransport.java:688)[na:1.8.0 2 02]atjava.security.AccessController.doPrivileged(NativeMethod)[na:1.8.0 2 02]atsun.rmi.transport.tcp.TCPTransportConnectionHandler.run(TCPTransport.java:687) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_202] at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0_202]
這是因?yàn)槲覀儾](méi)有創(chuàng)建出用戶(hù)
首先打開(kāi)rabbitmq界面add User 創(chuàng)建用戶(hù)

有了用戶(hù)之后是no access

點(diǎn)擊右邊的virtual hosts 咱們新建一個(gè)virtual host

如圖 我們?cè)O(shè)置User 然后Set Permission
這里我們直接設(shè)置為超級(jí)管理員了
(權(quán)限分為超級(jí)管理原,監(jiān)控者,policymaker,普通管理員和只能產(chǎn)生生產(chǎn)者和消費(fèi)者普通用戶(hù))
當(dāng)發(fā)現(xiàn)current permissions有了你的權(quán)限再?lài)L試連接就ok拉~

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
- SpringMVC集成redis配置的多種實(shí)現(xiàn)方法
- 淺談springMVC中controller的幾種返回類(lèi)型
- Spring MVC獲取HTTP請(qǐng)求頭的兩種方式小結(jié)
- SpringMVC和rabbitmq集成的使用案例
- SpringMVC異步處理操作(Callable和DeferredResult)
- Spring MVC數(shù)據(jù)處理和亂碼問(wèn)題詳解
- springmvc 結(jié)合ajax批量新增的實(shí)現(xiàn)方法
- 基于IDEA創(chuàng)建SpringMVC項(xiàng)目流程圖解
- SpringMVC使用@PathVariable接收參數(shù)過(guò)程解析
- 如何理解SpringMVC
相關(guān)文章
SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
在實(shí)際項(xiàng)目開(kāi)發(fā)中可能存在需要同時(shí)操作兩個(gè)數(shù)據(jù)庫(kù)的場(chǎng)景,本文主要介紹了SpringBoot項(xiàng)目中同時(shí)操作多個(gè)數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
深入解讀Java代碼組織中的package包結(jié)構(gòu)
這篇文章主要介紹了Java代碼組織中的package包結(jié)構(gòu),是Java入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2016-03-03
Springboot整合Dozer實(shí)現(xiàn)深度復(fù)制的方法
Dozer是一種Java?Bean到Java?Bean的映射器,遞歸地將數(shù)據(jù)從一個(gè)對(duì)象復(fù)制到另一個(gè)對(duì)象,它是一個(gè)強(qiáng)大的,通用的,靈活的,可重用的和可配置的開(kāi)源映射框架,本文給大家介紹Springboot整合Dozer的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2022-03-03
SpringBoot整合WebSocket實(shí)現(xiàn)后端向前端發(fā)送消息的實(shí)例代碼
WebSocket使得客戶(hù)端和服務(wù)器之間的數(shù)據(jù)交換變得更加簡(jiǎn)單,允許服務(wù)端主動(dòng)向客戶(hù)端推送數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于SpringBoot整合WebSocket實(shí)現(xiàn)后端向前端發(fā)送消息的相關(guān)資料,需要的朋友可以參考下2023-03-03
java調(diào)用opencv身份證號(hào)識(shí)別詳解
這篇文章主要為大家詳細(xì)介紹了java如何調(diào)用opencv實(shí)現(xiàn)身份證號(hào)的識(shí)別,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Java并發(fā)編程:CountDownLatch與CyclicBarrier和Semaphore的實(shí)例詳解
這篇文章主要介紹了Java并發(fā)編程:CountDownLatch與CyclicBarrier和Semaphore的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-09-09
Spring Boot項(xiàng)目中定制PropertyEditors方法
在本篇文章里小編給大家分享的是一篇關(guān)于Spring Boot定制PropertyEditors的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。2019-11-11

