事件的起因是要對接一個(gè)rabbitmq针史,rabbitmq的賬號是000008劝枣。結(jié)果程序在啟動(dòng)時(shí)候一直報(bào)錯(cuò)男韧,報(bào)錯(cuò)信息如下:
Caused by: com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
從報(bào)錯(cuò)信息上可以看出是授權(quán)失敗氢哮,肯定是賬號密碼的問題皇型。
但是確認(rèn)了賬號密碼及配置文件中的配置诬烹。
spring:
rabbitmq:
host: myip
port: 5672
username: 000008
password: mypwd
后面也是發(fā)現(xiàn),同一rabbitmq環(huán)境下的test用戶弃鸦,是可以連接的绞吁。
兩個(gè)用戶的權(quán)限也是一樣的,使用的程序也是一樣的唬格。
發(fā)現(xiàn)上述奇怪的現(xiàn)象后掀泳,陷入了沉思,后面啟動(dòng)時(shí)候直接debug代碼西轩,才發(fā)現(xiàn)問題之所在员舵。
原來用戶000008在程序讀取后竟然不是000008。
后面經(jīng)過查閱資料藕畔,了解yml文件讀取的一個(gè)原理马僻,對于以數(shù)字0開頭的數(shù)字型值,在讀取時(shí)候會(huì)按照8進(jìn)制讀取注服,所以實(shí)際讀取到的并不是000008韭邓。
綜合以上,把配置文件中用戶名修改為字符串即可溶弟。
spring:
rabbitmq:
host: myip
port: 5672
username: '000008'
password: mypwd
所以綜合以上女淑,在yml文件中配置相應(yīng)的數(shù)字型值時(shí),為了防止意外辜御,最好加上單引號鸭你。