yml配置文件讀取出錯 Exception in thread "main" while scanning for the next token found character '\t(TAB)'


這幾天在學習springboot的微服務項目,在配置文件方面也想嘗試下新的yml配置,就想把原來項目properties寫的文件轉換成yml試一下(老項目是之前檢出在了eclipse里面),結果寫好了yml配置文件,項目啟動時候報了如下錯誤:

Exception in thread "main" while scanning for the next token

found character '\t(TAB)' that cannot start any token. (Do not use \t(TAB) for indentation)
 in 'reader', line 9, column 3:
      dubbo:
      ^


at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:420)

at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)

.......

原因是因為我在yml配置文件中用了Tab鍵來縮進,所以導致spring啟動讀取yml配置文件不能正確讀取。

注意我在上面標紅的地方,yml配置中使用Tab來縮進確實不符合yml的語法規則,但是我試了一下在另一個開發工具IDEA中yml配置使用Tab來縮進項目啟動是沒有報錯的,可能是是IDEA開發工具比較厲害的一點,不過我們還是要注意盡量不要使用Tab來縮進。

還有很多類似的啟動報錯,很可能就是你的yml配置文件里面有問題,這個時候我們就要仔細檢查下yml文件書寫是否符合規范,貼一個YAML語言教程地址:http://www.ruanyifeng.com/blog/2016/07/yaml.html?f=tt 里面有寫yml文件的語法規則,大家可以去看看。

上面是可以從代碼報錯中看出,當時我的項目中報錯如下:

Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning a simple key
 in 'reader', line 7, column 3:
      serviceUrl.defaultZone:http://lo ...
      ^
could not find expected ':'
 in 'reader', line 7, column 55:
     ... ne:http://localhost:8080/eureka/
                                         ^

改正方法:yml文件中key: value,在value之前加上空格,我的代碼是eureka.client.serviceUrl.defaultZone: http://localhost:8080/eureka/

ok


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM