当前位置 : 主页 > 编程语言 > java >

yaml小bug: yaml文件中不能使用tab空格!

来源:互联网 收集:自由互联 发布时间:2022-10-26
yaml 的语法其实很容易懂的, 但是对于新手而言, 难以一下子接受, 特别是其中的列表/对象语法, 当然, 更难的是列表嵌套对象语法.不过呢, 习惯了就会发现, 哦, 还好吧. 问题现象 今天呢

yaml 的语法其实很容易懂的,  但是对于新手而言, 难以一下子接受, 特别是其中的列表/对象语法,  当然, 更难的是列表嵌套对象语法. 不过呢, 习惯了就会发现, 哦, 还好吧.


问题现象

今天呢, 又遇到一个yaml的配置问题, 但是, 这个问题很奇怪, 一下子发现不了原因啊.  报错误日志如下: 

rocketmq:
name-server: 1214:9876
producer:
access-key: 4f494c12-dfdd-49ec-9c23-121212222222
secret-key: 28b8701c-caa4-47c4-b6df-17830d6e71c8
#必须指定group
#生产者组名,规定在一个应用里面必须唯一
group: wallet-group
#消息发送的超时时间 默认3000ms
send-message-timeout: 3000
#消息达到4096字节的时候,消息就会被压缩。默认 4096
compress-message-body-threshold: 4096
#最大的消息限制,默认为128K
max-message-size: 4194304
#同步消息发送失败重试次数
retry-times-when-send-failed: 3
#在内部发送失败时是否重试其他代理,这个参数在有多个broker时才生效
retry-next-server: true
#异步消息发送失败重试的次数
retry-times-when-send-async-failed: 3
consumer:
access-key: 4f494c12-dfdd-49ec-9c23-2c84b0a9de3brfBd56
secret-key: 28b8701c-caa4-47c4-b6df-17830d6e71c8



org.yaml.snakeyaml.scanner.ScannerException: 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 136, column 1:

^

at org.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:421)
at org.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:557)
at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:157)
...
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)


问题分析

左思右想也想不明白,  我的yaml文件里面并没有 reader 字样, 怎么会提示 in 'reader', line 136, column 1: 呢?  难道是 136行? 

用idea 打开文件, 仍然没有头绪..  日志提示是 found character '\t(TAB)' , 也就是遇到了一个跳格tab,  难道是tab 键引起的?  我使用 notepad++ 打开了那个配置文件,  果然发现了异常: 


yaml小bug:  yaml文件中不能使用tab空格!_java


原来是yaml 不支持tab 键引入的空格!   问题解决, 下次记得老老实实的使用 space 空格吧 !!!






上一篇:Java 注意事项
下一篇:没有了
网友评论